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 "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., "@PIX4Dmatic MCPopen 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: computer-control-mcp-lands
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_dir | Yes | ||
| expected | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool checks for existence of outputs, implying a read-only operation, but doesn't cover critical behaviors: whether it requires specific permissions, how it handles missing or partial outputs, if it returns structured data or simple booleans, or any performance or rate limit considerations. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every element ('check', 'expected PIX4Dmatic outputs', 'under a project directory') contributes directly to understanding the tool's function, with zero redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is partially complete. It covers the basic action but lacks behavioral context (e.g., error handling, return format). The presence of an output schema reduces the need to describe return values in the description, but without annotations, more detail on operational constraints would improve completeness for safe agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'project directory' and 'expected outputs', aligning with the two parameters ('project_dir' and 'expected'), but adds minimal semantics beyond the schema's titles. It doesn't explain format expectations (e.g., file paths, wildcards) or validation rules. With low coverage, the description provides basic mapping but insufficient detail for confident parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('check') and resource ('expected PIX4Dmatic outputs'), specifying it verifies existence under a project directory. It distinguishes from siblings like 'pix4d_get_status' or 'pix4d_find_log_errors' by focusing on output file validation rather than system state or error detection. However, it doesn't explicitly contrast with all siblings, such as 'pix4d_collect_diagnostics' which might overlap in file checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., after 'pix4d_run_job'), exclusions (e.g., not for checking log files), or comparisons to siblings like 'pix4d_get_status' for broader status checks. The context is implied (post-processing verification) but not stated, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_click_textC
Click a visible PIX4Dmatic UI control by accessible text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| timeout_sec | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions clicking 'visible' controls, implying the UI must be in a certain state, but doesn't address critical aspects like what happens if the text isn't found, whether this requires specific permissions, or how it interacts with the application's state. The description is too minimal for a UI automation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a simple tool and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of UI automation (which often involves state dependencies and error conditions), no annotations, and 0% schema description coverage, the description is inadequate. While an output schema exists, the description doesn't provide enough context about behavior, parameter usage, or integration with sibling tools to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only mentions 'text' implicitly but doesn't explain what 'text' represents (e.g., exact label, partial match), nor does it address the 'timeout_sec' parameter at all. This leaves significant gaps in understanding how to use the parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Click') and target ('visible PIX4Dmatic UI control by accessible text'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like pix4d_click_menu or pix4d_send_hotkey, which also interact with UI elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., PIX4Dmatic must be running), when not to use it, or how it compares to similar tools like pix4d_click_menu or pix4d_send_hotkey.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_collect_diagnosticsB
Collect screenshot, recent logs, and status into a diagnostics directory.
| Name | Required | Description | Default |
|---|---|---|---|
| output_dir | Yes | ||
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a write operation ('Collect... into a diagnostics directory') but doesn't disclose permissions, side effects, or output format. The existence of an output schema helps, but the description lacks details on what 'collect' entails beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and resources. Every word contributes directly to explaining the tool's function without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (collecting multiple resources) and no annotations, the description is incomplete—it lacks behavioral details and parameter guidance. However, the presence of an output schema mitigates some gaps by likely defining return values, preventing a lower score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it adds no parameter-specific information. It mentions 'diagnostics directory' which loosely relates to 'output_dir', but doesn't explain 'project_dir' or parameter interactions. With 2 parameters and no schema descriptions, the baseline is low, but the description provides minimal context, warranting a score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Collect') and the resources involved ('screenshot, recent logs, and status into a diagnostics directory'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'pix4d_screenshot' or 'pix4d_read_latest_logs', which handle similar resources individually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or comparisons to siblings like 'pix4d_check_outputs' or 'pix4d_get_status', leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_find_log_errorsC
Summarize warnings and errors from the latest PIX4Dmatic log.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | ||
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool summarizes warnings and errors, implying a read-only operation, but doesn't cover critical aspects like whether it requires specific permissions, how it handles missing logs, error rates, or the format of the summary. For a tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly. Every part of the sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which should handle return values), no annotations, and low parameter coverage, the description is minimally adequate but incomplete. It covers the basic purpose but lacks usage guidelines, parameter details, and behavioral context, making it insufficient for full agent understanding without external schema references.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning parameters 'lines' and 'project_dir' are undocumented in the schema. The description adds no information about these parameters—it doesn't explain what 'lines' controls (e.g., number of log lines to analyze) or how 'project_dir' affects the log location. With low coverage and no compensation in the description, this falls short of the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Summarize warnings and errors from the latest PIX4Dmatic log.' It specifies the action ('Summarize'), the target ('warnings and errors'), and the source ('latest PIX4Dmatic log'). However, it doesn't explicitly differentiate from sibling tools like 'pix4d_read_latest_logs', which might handle raw log reading rather than summarization of errors/warnings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'pix4d_read_latest_logs' or 'pix4d_collect_diagnostics', nor does it specify prerequisites, contexts, or exclusions for usage. This leaves the agent without clear direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_focusB
Focus the PIX4Dmatic main window.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states what the tool does but lacks behavioral details: it doesn't specify if focus brings the window to foreground, requires the app to be running, has side effects on other windows, or what happens on failure. For a UI interaction tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and target, making it immediately understandable. Every word earns its place, and there's no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description meets minimum requirements by stating the action. However, as a UI-focused tool with no annotations and multiple siblings, it lacks context about prerequisites (e.g., app must be launched), behavioral outcomes, or integration with other tools, leaving gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't mention parameters, which is correct for this case. A baseline of 4 is applied as it handles the zero-parameter scenario adequately without unnecessary details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Focus') and target ('the PIX4Dmatic main window'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'pix4d_get_ui_tree' or 'pix4d_screenshot' which also interact with the UI, leaving room for ambiguity about when this specific focus action is needed versus other UI operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'pix4d_get_ui_tree' for UI inspection or 'pix4d_wait_until_idle' for timing, there's no indication whether focus is needed before other interactions, if it's for accessibility, or in what workflow contexts it applies. The lack of context makes usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_get_statusB
Return PIX4Dmatic process and window status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions returning status but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires the application to be running, potential latency, or error conditions. This leaves significant gaps for a tool interacting with an external process.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, for a tool that interacts with an external application (PIX4Dmatic), more context on prerequisites (e.g., app must be launched) or return value meaning would be helpful, especially with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, aligning with the schema. Baseline is 4 for zero parameters, as it avoids unnecessary details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Return') and the resource ('PIX4Dmatic process and window status'), making the purpose understandable. It distinguishes from siblings like pix4d_get_ui_tree (which returns UI structure) or pix4d_check_outputs (which checks outputs), though it could be more explicit about the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this should be used for monitoring processing status versus checking UI state, or when to prefer it over siblings like pix4d_find_log_errors for error detection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_get_ui_treeB
Return a compact UI Automation tree for selector discovery.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it returns a 'compact' tree without detailing behavioral traits like performance impact, permissions needed, or how the tree is structured. It mentions 'selector discovery' but doesn't explain what selectors are or how the output aids in this, leaving significant gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the core purpose. Every word earns its place, with no wasted text, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description doesn't need to explain return values, but it lacks details on behavioral context and parameter meaning. With no annotations and low schema coverage, the description is minimally adequate but has clear gaps in explaining how the tool fits into the broader UI automation workflow with siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond the input schema, which has 0% description coverage and only one parameter 'depth' with a default. Since schema coverage is low (<50%), the description doesn't compensate by explaining what 'depth' means or its impact on the returned tree, resulting in a baseline score due to the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Return') and resource ('UI Automation tree'), with the purpose 'for selector discovery' providing specific context. However, it doesn't explicitly differentiate from sibling tools like pix4d_screenshot or pix4d_focus, which might also relate to UI interaction, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when to prefer it over pix4d_screenshot for UI inspection or how it relates to other UI-focused tools. It lacks explicit when/when-not instructions or named alternatives, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_launchC
Launch PIX4Dmatic or attach to the existing process.
| Name | Required | Description | Default |
|---|---|---|---|
| exe_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions launching or attaching to a process but doesn't describe what happens if the application is already running, whether this requires specific permissions, potential side effects (e.g., opening windows), or error handling. This is inadequate for a tool that interacts with external software.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's action without unnecessary words. It's front-loaded with the core purpose and appropriately sized for the complexity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of launching/attaching to an external application, no annotations, and an output schema (which might cover return values), the description is incomplete. It lacks details on behavior, prerequisites, error cases, and how it integrates with sibling tools, making it insufficient for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, and the tool description provides no information about the 'exe_path' parameter. Since there's only one parameter, the baseline is 4, but the description fails to add any meaning beyond the schema, such as explaining what 'exe_path' is for (e.g., custom executable location) or default behavior when null, so it's scored lower.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'launch' and resource 'PIX4Dmatic' with the alternative action 'attach to existing process', making the purpose specific and understandable. However, it doesn't explicitly distinguish this from sibling tools like 'pix4d_focus' or 'pix4d_get_status', which might involve application state management, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether PIX4Dmatic must be installed), when to prefer launching vs. attaching, or how it relates to siblings like 'pix4d_focus' for application control, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_open_projectB
Open an existing PIX4Dmatic project file.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions opening an existing project file but lacks details on permissions needed, whether it modifies the file, error handling (e.g., if the path is invalid), or what happens upon success (e.g., if it loads the project into memory). This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core action without unnecessary elaboration, which is appropriate for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which likely describes return values), the description doesn't need to explain outputs. However, with no annotations, 1 parameter at 0% schema coverage, and a mutation-like action ('Open'), the description is incomplete—it lacks behavioral context and parameter details. It's minimally adequate but has clear gaps for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate, but it only implies the parameter 'project_path' without explaining its format (e.g., file path syntax, supported extensions). This adds minimal meaning beyond the schema's title 'Project Path'. Given the low coverage, a baseline of 3 is assigned as the description hints at the parameter but doesn't fully document it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Open') and resource ('an existing PIX4Dmatic project file'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from siblings like 'pix4d_launch' (which might open the application) or 'pix4d_run_job' (which might process a project), leaving room for ambiguity in distinguishing exact use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify if this should be used before running jobs or after launching the application, nor does it mention prerequisites like having a valid project file. The description only states what it does, not when or why to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_read_latest_logsB
Read recent lines from the newest discovered PIX4Dmatic log file.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | ||
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool reads logs but doesn't clarify what 'newest discovered' means (e.g., automatic detection vs. manual specification), whether it's a read-only operation (implied but not explicit), or any side effects (e.g., file locking). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main action and resource, making it easy to parse quickly. Every part of the sentence serves a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there's an output schema (which should describe return values), the description doesn't need to explain outputs. However, with 2 parameters, 0% schema description coverage, and no annotations, the description is too sparse—it doesn't clarify parameter purposes or behavioral nuances. For a log-reading tool in a PIX4Dmatic context, more detail on discovery mechanics and typical use would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The tool description mentions 'recent lines' which hints at the 'lines' parameter, but doesn't explain the 'project_dir' parameter at all. It adds minimal semantic value beyond what's inferable from parameter names, failing to fully compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read recent lines') and target resource ('newest discovered PIX4Dmatic log file'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'pix4d_find_log_errors' which might also interact with logs, leaving some ambiguity about when to choose one over the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'pix4d_find_log_errors' or 'pix4d_collect_diagnostics'. It doesn't mention prerequisites (e.g., whether PIX4Dmatic must be running) or typical use cases (e.g., debugging, monitoring). Without such context, the agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_run_jobC
Load and run a JSON job file.
| Name | Required | Description | Default |
|---|---|---|---|
| job_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'load and run' which implies a write/mutation operation, but doesn't disclose behavioral traits such as whether it's destructive, requires specific permissions, has side effects (e.g., starting processing), or handles errors. This leaves significant gaps for a tool that likely performs critical actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise ('Load and run a JSON job file.'), which is efficient and front-loaded. However, it's arguably too brief given the tool's likely complexity, missing necessary details that could earn its place in a single sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool likely involves job execution (a complex operation), no annotations, 0% schema coverage, but with an output schema present, the description is incomplete. It doesn't explain what 'run' entails, potential impacts, or how it integrates with other tools, making it inadequate for safe and effective use despite the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, with one parameter 'job_path' undocumented in the schema. The description adds no meaning beyond the schema—it doesn't explain what 'job_path' represents (e.g., file path format, expected content of the JSON job file). This fails to compensate for the low coverage, leaving the parameter poorly understood.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Load and run a JSON job file' clearly states the action (load and run) and resource (JSON job file), but it's somewhat vague about what 'run' entails in this context (e.g., processing, execution). It distinguishes from siblings like 'pix4d_check_outputs' or 'pix4d_get_status' by focusing on job execution, but doesn't explicitly differentiate from 'pix4d_run_job_object' which likely handles similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a job file prepared), when not to use it, or how it relates to siblings like 'pix4d_run_job_object' or 'pix4d_start_processing'. The description implies usage for job execution but offers no contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_run_job_objectC
Run a job object against the current PIX4Dmatic session or an existing project_path.
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions running a job but doesn't clarify if this is a read-only or mutating operation, what permissions are needed, potential side effects, or how it interacts with the PIX4Dmatic environment. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently states the tool's action and context. It's front-loaded with the core purpose and avoids unnecessary words, though it could be more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity implied by a 'job object' with nested properties, no annotations, and 0% schema coverage, the description is inadequate. While an output schema exists, the description doesn't address key aspects like what the job does, how it affects the session/project, or error handling, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description doesn't add any meaning beyond the schema. It mentions 'job object' but doesn't explain its structure, required fields, or how it relates to the 'job' parameter. With 1 parameter and no schema descriptions, the description fails to compensate for the lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('run a job object') and target ('against the current PIX4Dmatic session or an existing project_path'), which clarifies the basic purpose. However, it doesn't distinguish this tool from its sibling 'pix4d_run_job' or explain what a 'job object' entails, leaving the purpose somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives like 'pix4d_run_job' or 'pix4d_start_processing'. The mention of 'current session' or 'existing project_path' implies some context but doesn't specify prerequisites, exclusions, or comparative use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_screenshotB
Save a screenshot of the current desktop.
| Name | Required | Description | Default |
|---|---|---|---|
| output_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose permissions needed, whether it overwrites files, rate limits, or what the output looks like (e.g., file format, naming). This is inadequate for a tool that likely involves file system operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words. It's front-loaded and efficiently conveys the core purpose without unnecessary elaboration, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 parameter with 0% schema coverage, no annotations, and an output schema (which handles return values), the description is incomplete. It covers the basic action but misses key details like parameter meaning, behavioral traits, and usage context, making it only partially helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds no parameter information beyond what the schema implies. The single parameter 'output_dir' is undocumented in both schema and description, though with 0 parameters, the baseline would be 4; here, 1 parameter exists but is not explained, so it's minimally adequate but lacks compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Save a screenshot') and the target ('current desktop'), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'pix4d_get_ui_tree' or 'pix4d_collect_diagnostics' that might also involve capturing UI elements, so it lacks explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether Pix4D must be running), exclusions, or comparisons to siblings like 'pix4d_get_ui_tree' for different capture needs, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_send_hotkeyB
Send a pywinauto hotkey string to PIX4Dmatic, for example '^o' or '{F5}'.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the action ('Send') but doesn't disclose behavioral traits like whether this requires PIX4Dmatic to be in focus, potential side effects (e.g., triggering unintended actions), error conditions, or response format. The description is minimal and lacks critical operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and includes helpful examples. Every word earns its place with no redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 1 parameter with 0% schema coverage and an output schema (which reduces need to describe returns), the description provides basic purpose and parameter format but lacks details on usage context, prerequisites, error handling, or behavioral implications. It's minimally adequate but has clear gaps for a tool that interacts with an application UI.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds value by explaining that the parameter is a 'pywinauto hotkey string' with examples ('^o' or '{F5}'), which clarifies the expected format beyond the schema's generic 'string' type. However, it doesn't cover syntax details, valid key combinations, or limitations, leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a pywinauto hotkey string') and target application ('to PIX4Dmatic'), with specific examples ('^o' or '{F5}'). It distinguishes itself from siblings like pix4d_type_text (text input) and pix4d_click_menu (menu interaction) by focusing on keyboard shortcuts, though it doesn't explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for sending keyboard shortcuts to PIX4Dmatic, but provides no explicit guidance on when to use this tool versus alternatives like pix4d_click_menu or pix4d_type_text. It also doesn't mention prerequisites (e.g., PIX4Dmatic must be running/focused) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_start_processingD
Start processing by clicking the first matching processing control.
| Name | Required | Description | Default |
|---|---|---|---|
| selectors | No | ||
| timeout_sec | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'clicking' which suggests a UI automation behavior, but fails to disclose critical traits: whether this is a read-only or destructive operation, authentication needs, error handling, rate limits, or what 'processing' entails. The description is insufficient for a tool with potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, straightforward sentence that's front-loaded with the core action. There's no wasted verbiage, though it could be more informative. It's appropriately sized for a simple tool but lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 0% schema coverage, no annotations, and an output schema (which helps but isn't described), the description is incomplete. It doesn't explain what 'processing' is, the tool's behavior, or parameter usage. For a UI automation tool with potential complexity, this leaves significant gaps for an agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for two undocumented parameters. It provides no information about 'selectors' or 'timeout_sec'—what they mean, how they're used, or their impact. The description adds zero semantic value beyond the schema, leaving parameters completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Start processing by clicking the first matching processing control' which provides a verb ('start processing') and action ('clicking'), but it's vague about what 'processing' entails and doesn't distinguish from siblings like 'pix4d_run_job' or 'pix4d_run_job_object'. It's not tautological but lacks specificity about the resource or domain context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for starting processing via UI interaction, but it doesn't clarify prerequisites, when to choose this over programmatic job execution tools, or any exclusions. Usage is only loosely implied by the action described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_type_textB
Type plain text into the focused PIX4Dmatic control.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether this simulates typing with delays, if it requires the control to be in a specific state, what happens on failure, or any side effects. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, with no wasted information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple text input), one parameter, and the presence of an output schema, the description is minimally adequate. However, it lacks details on usage context and behavioral aspects, which are important for a mutation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implies the 'text' parameter is the plain text to type, adding meaning beyond the schema's 0% coverage. Since there's only one parameter, this is sufficient to compensate for the low schema coverage, making it clear what the input represents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Type plain text') and target ('into the focused PIX4Dmatic control'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like pix4d_click_text or pix4d_send_hotkey, which might involve text input in different ways.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites like needing a focused control or compare to siblings such as pix4d_click_text for text selection or pix4d_send_hotkey for keyboard shortcuts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pix4d_wait_until_idleB
Wait until PIX4Dmatic appears idle based on process CPU and recent logs.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout_sec | No | ||
| poll_sec | No | ||
| idle_cpu_percent | No | ||
| idle_checks | No | ||
| project_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions monitoring CPU and logs for idle detection, but lacks details on behavioral traits like timeout handling, polling behavior, error conditions, or what 'idle' means operationally. This leaves gaps for an agent to understand how the tool behaves beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core purpose without unnecessary details. It's front-loaded and wastes no words, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with 0% schema coverage and no annotations, the description is incomplete—it doesn't explain parameters or behavioral nuances. However, an output schema exists, so return values are covered. The description provides basic context but lacks depth for a tool with multiple configuration options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It doesn't mention any parameters, leaving all 5 parameters undocumented. The description hints at monitoring criteria (CPU and logs) but doesn't map to specific parameters like 'idle_cpu_percent' or 'poll_sec'. Baseline is 3 due to high schema coverage expectation, but the description adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Wait until PIX4Dmatic appears idle based on process CPU and recent logs.' It specifies the action (wait), the condition (idle), and the monitoring criteria (CPU and logs). However, it doesn't explicitly differentiate from siblings like 'pix4d_get_status' which might check status without waiting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to wait for PIX4Dmatic to become idle, such as after launching a job. It doesn't provide explicit alternatives or exclusions, but the context suggests it's for monitoring idle state, unlike siblings focused on actions like 'pix4d_run_job' or 'pix4d_get_status'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
18 tool updates
v0.1.0- First observed
pix4d_check_outputs - First observed
pix4d_click_menu - First observed
pix4d_click_text - First observed
pix4d_collect_diagnostics - First observed
pix4d_find_log_errors - First observed
pix4d_focus - First observed
pix4d_get_status - First observed
pix4d_get_ui_tree - First observed
pix4d_launch - First observed
pix4d_open_project - First observed
pix4d_read_latest_logs - First observed
pix4d_run_job - First observed
pix4d_run_job_object - First observed
pix4d_screenshot - First observed
pix4d_send_hotkey - First observed
pix4d_start_processing - First observed
pix4d_type_text - First observed
pix4d_wait_until_idle
TDQS
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides automated GUI testing and control capabilities through an MCP server that enables mouse movements, keyboard input, screen captures, and image recognition across Windows, macOS, and Linux.46MIT
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive computer control capabilities including mouse and keyboard automation, screen capture, OCR text recognition, and window management through MCP protocol.1MIT
- 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-
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/jangjo123/Pix4D-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server