MCP Desktop Tools
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., "@MCP Desktop ToolsOpen Chrome, go to news.ycombinator.com, and summarize the top story"
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.
MCP Desktop Tools
An MCP server that gives Claude desktop automation capabilities — browser control, screenshots, mouse/keyboard input, window management, and clipboard access.
Built with TypeScript, Playwright, and native Windows APIs.
Tools
Browser
Tool | Description |
| Launch Chromium and navigate to a URL |
| Navigate to a URL with configurable wait conditions |
| Click elements by CSS selector |
| Type into input fields, optionally clear or press Enter |
| Read page content (text, HTML, title, URL, or specific elements) |
| Capture viewport or full-page screenshots |
| Close the browser |
Screenshots
Tool | Description |
| Capture entire screen (multi-monitor supported) |
| Capture a rectangular region by coordinates |
| Capture a specific window by title (partial match) |
Desktop
Tool | Description |
| Click at screen coordinates |
| Move cursor (instant or smooth animation) |
| Type text via simulated keystrokes |
| Press keyboard shortcuts (e.g. ctrl+c, alt+tab) |
| List all visible windows with positions and sizes |
| Focus a window by title |
| Move and/or resize a window |
| Launch apps by path, name, or URI |
| Read clipboard text |
| Write text to clipboard |
Related MCP server: device-controller-mcp
Setup
npm install
npm run build
npx playwright install chromiumClaude Code Configuration
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"desktop-tools": {
"command": "node",
"args": ["C:/Users/<you>/mcp-desktop-tools/dist/index.js"]
}
}
}Restart Claude Code to pick up the new server.
Requirements
Windows 10/11
Node.js 18+
PowerShell (used for native window/mouse/keyboard operations)
License
MIT
Available Tools
20 toolsbrowser_clickC
Click an element on the page by CSS selector
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector of element to click | |
| button | No | Mouse button (default: left) | |
| clickCount | No | Number of clicks (default: 1) |
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 states the basic action but lacks critical details: whether this requires a loaded page, what happens if the selector isn't found (e.g., error or no-op), if it waits for elements, or any side effects like navigation triggers. This is inadequate for a tool that interacts with a dynamic environment like a browser.
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 zero wasted words. It front-loads the core action ('Click an element') and specifies the method ('by CSS selector'), making it highly efficient and easy to parse.
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 browser interaction (dynamic pages, potential errors) and no annotations or output schema, the description is incomplete. It doesn't address failure modes, prerequisites, or return values, leaving significant gaps for an AI agent to use this tool safely and effectively in a real-world scenario.
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 100%, so the schema fully documents all parameters (selector, button, clickCount) with descriptions and defaults. The description adds no additional parameter semantics beyond implying CSS selector usage, which is already covered in the schema. This meets the baseline for high schema coverage.
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 ('element on the page by CSS selector'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'desktop_mouse_click', which performs a similar action but in a different context (desktop vs browser).
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., needing an open browser page), exclusions, or comparisons to siblings like 'desktop_mouse_click' or other browser tools for different interactions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_closeB
Close the browser instance
| Name | Required | Description | Default |
|---|---|---|---|
No 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 action ('Close') but doesn't explain what happens upon closure (e.g., whether it terminates the browser process, closes all tabs, or affects other tools). This leaves gaps in understanding the tool's effects and 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, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse.
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 simplicity (0 parameters, no output schema), the description is adequate but minimal. It covers the basic purpose but lacks details on behavioral aspects (e.g., what 'close' entails) and usage context, which could be important for an agent to avoid errors like closing a non-existent browser.
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 the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter details, earning a high baseline score for this dimension.
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 ('Close') and the target resource ('the browser instance'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'browser_open' or 'desktop_window_focus', which might also involve browser window management, 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. It doesn't mention prerequisites (e.g., requiring an open browser instance), exclusions, or related tools like 'browser_open' for starting a browser, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_openA
Launch Chromium browser and navigate to a URL
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to open | |
| headless | No | Run headless (default: false, visible) |
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 action but does not mention potential side effects (e.g., opening a new window, resource usage), permissions required, or error conditions (e.g., invalid URL handling). For a tool that launches an external application with no annotation coverage, this is a significant gap.
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 is front-loaded and every part of the sentence contributes to understanding the tool's function.
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 (launching a browser with two parameters) and no annotations or output schema, the description is minimally adequate. It covers the basic action but lacks details on behavior, errors, or integration with sibling tools, leaving gaps for an AI agent to infer usage correctly.
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 100%, with both parameters (url and headless) fully documented in the schema. The description does not add any additional meaning beyond what the schema provides, such as explaining URL validation or headless mode implications. Baseline 3 is appropriate when the schema does the heavy lifting.
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 specific action ('Launch Chromium browser and navigate to a URL'), including the resource (Chromium browser) and the operation (launch and navigate). It distinguishes itself from siblings like browser_navigate (which navigates an already open browser) and desktop_app_launch (which launches other desktop applications).
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 opening a new browser instance, which differentiates it from browser_navigate (for existing browsers) and desktop_app_launch (for non-browser apps). However, it lacks explicit guidance on when to use this versus alternatives like browser_navigate or when not to use it (e.g., if a browser is already open).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_readC
Read content from the current page
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | What to read: text (visible text), html (innerHTML), title, url, or element (specific element text) | |
| selector | No | CSS selector (required for mode 'element', optional for 'text'/'html' to scope) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Read content from the current page' implies a read-only operation, but it doesn't specify what happens if no page is open, whether it returns structured data or raw text, or any performance considerations. For a tool with no annotation coverage, this leaves significant behavioral gaps unaddressed.
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 zero wasted words. It's appropriately sized for a simple tool and front-loads the core functionality 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 has no annotations and no output schema, the description is insufficiently complete. It doesn't explain what format the read content returns (text string, HTML structure, etc.), doesn't mention error conditions, and provides no context about the browsing environment required. For a tool with 2 parameters and rich sibling tools, more completeness is needed.
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 100%, providing complete documentation for both parameters. The description adds no parameter-specific information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
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 ('Read') and resource ('content from the current page'), making the purpose immediately understandable. It distinguishes from siblings like browser_navigate or browser_click by focusing on reading rather than navigation or interaction. However, it doesn't explicitly differentiate from desktop_clipboard_read or other reading tools, keeping it at 4 rather than 5.
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 when to prefer browser_read over browser_screenshot for content extraction, or when to use it versus desktop_clipboard_read. There's no context about prerequisites (e.g., requires an open browser page) or exclusions, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_screenshotC
Take a screenshot of the current browser page
| Name | Required | Description | Default |
|---|---|---|---|
| fullPage | No | Capture full scrollable page (default: false, viewport only) | |
| selector | No | CSS selector to screenshot a specific element |
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. While 'Take a screenshot' implies a read operation, it doesn't address permissions needed, whether it requires an active browser session, what format the screenshot returns, or any error conditions. This leaves significant behavioral gaps 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 directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with every word earning its place in conveying the core functionality.
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 no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the screenshot returns (e.g., image data format, file path), error handling, or dependencies on browser state. For a tool with 2 parameters and behavioral uncertainty, more context is needed.
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 100%, with both parameters ('fullPage' and 'selector') well-documented in the schema. The description adds no additional parameter information beyond what the schema provides, which is acceptable given the high schema coverage but doesn't enhance 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 ('Take a screenshot') and target ('current browser page'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling screenshot tools like 'screenshot_fullscreen' or 'screenshot_region', which would require explicit distinction for a perfect 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 offers no guidance on when to use this tool versus alternatives. With multiple screenshot-related siblings (screenshot_fullscreen, screenshot_region, screenshot_window), there's no indication of when this browser-specific tool is preferred over desktop screenshot tools or vice versa.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browser_typeC
Type text into an input element on the page
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector of input element | |
| text | Yes | Text to type | |
| clear | No | Clear existing content first (default: false) | |
| pressEnter | No | Press Enter after typing (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the action but lacks details on permissions, side effects (e.g., if typing triggers events), error handling, or performance aspects. 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 redundancy. 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?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral traits, error cases, or return values, leaving significant gaps in understanding how the tool operates in practice.
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 100%, so the schema fully documents all parameters. The description doesn't add any semantic details beyond what the schema provides (e.g., it doesn't explain selector syntax or text formatting). Baseline 3 is appropriate when the schema handles parameter 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 clearly states the action ('type text') and target ('into an input element on the page'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'desktop_keyboard_type' which might have overlapping functionality, preventing a perfect 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 offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., requiring a browser to be open), exclusions, or comparisons to sibling tools like 'browser_click' or 'desktop_keyboard_type', leaving the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_app_launchC
Launch an application by path, name, or URI
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | App path, executable name, or URI (e.g. 'notepad', 'https://...', 'ms-settings:') | |
| args | No | Command line arguments | |
| waitMs | No | Time to wait after launch in ms (default: 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral details. It mentions launching by path/name/URI but doesn't disclose critical traits like permissions needed, error handling, platform dependencies, or what happens if the app fails to launch. 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 with zero waste. It's front-loaded with the core purpose and avoids unnecessary elaboration, making it highly concise and well-structured.
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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavior, error cases, platform specifics, and return values, which are essential for an agent to use it effectively in a desktop automation context.
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 100%, so the schema fully documents parameters. The description adds no additional meaning beyond implying the target can be a path, name, or URI, which is already covered in the schema's description. Baseline 3 is appropriate as the schema does the heavy lifting.
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 ('Launch') and resource ('application'), specifying it can be done by path, name, or URI. It distinguishes from browser-related siblings but doesn't explicitly differentiate from other desktop tools like desktop_window_focus or desktop_keyboard_type, which is why it's not a 5.
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 on when to use this tool versus alternatives is provided. For example, it doesn't clarify when to use desktop_app_launch versus browser_open for URIs, or versus other desktop tools for automation tasks, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_clipboard_readA
Read the current clipboard text content
| Name | Required | Description | Default |
|---|---|---|---|
No 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 discloses the basic behavior of reading clipboard text but lacks details like whether it requires specific permissions, if it only works with text (vs. images), or potential errors (e.g., empty clipboard). The description is accurate but minimal, not fully compensating for the lack of annotations.
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 no wasted words, front-loading the core purpose ('Read the current clipboard text content'). It is appropriately sized for a simple tool with no parameters, making it easy to understand 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's simplicity (0 parameters, no output schema, no annotations), the description is minimally complete but lacks depth. It does not explain return values (e.g., format of text, handling of empty clipboard) or behavioral nuances, which could be helpful for an AI agent despite the low complexity.
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 does not add parameter information, which is appropriate here. A baseline of 4 is applied as it adequately handles the absence of parameters without introducing confusion.
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 specific action ('Read') and target resource ('current clipboard text content'), distinguishing it from sibling tools like 'desktop_clipboard_write' which performs the opposite operation. It precisely communicates what the tool does without ambiguity.
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 context by specifying 'clipboard text content,' suggesting it should be used when text data is needed from the clipboard. However, it does not explicitly state when to use this tool versus alternatives or mention any prerequisites, such as ensuring the clipboard contains text rather than other data types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_clipboard_writeC
Write text to the clipboard
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to write to clipboard |
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 the action but does not disclose behavioral traits like whether this requires user permissions, overwrites existing clipboard content, or has platform-specific limitations.
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 with zero waste. It is front-loaded and directly conveys the core functionality without unnecessary details.
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 lack of annotations and output schema, the description is incomplete. It does not address key contextual aspects like error conditions, return values, or system dependencies, which are important for a clipboard operation.
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 100%, with the parameter 'text' fully documented in the schema. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
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 ('write') and resource ('text to the clipboard'), making the purpose immediately understandable. However, it does not explicitly differentiate from its sibling 'desktop_clipboard_read', which is a minor gap.
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 'desktop_clipboard_read' or other clipboard-related methods. It lacks context about prerequisites, such as requiring clipboard access permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_keyboard_hotkeyC
Press a keyboard shortcut (e.g. ctrl+c, alt+tab)
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | Key combination, e.g. ["ctrl", "c"] or ["alt", "tab"] |
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 the action ('Press') but doesn't disclose behavioral traits like whether this requires focus on a specific window, if it simulates key presses vs. system events, potential side effects, or error conditions. The description is minimal and lacks critical operational context for a system interaction 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 with zero waste. It's front-loaded with the core purpose and includes helpful examples. Every word earns its place, 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 a system-level keyboard interaction tool with no annotations and no output schema, the description is insufficient. It doesn't cover behavioral aspects, error handling, or what happens after execution. For a tool that could have significant side effects, more context is needed to ensure safe and correct usage.
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 100%, with the schema fully documenting the 'keys' parameter and providing examples. The description adds no additional parameter semantics beyond what's in the schema. According to rules, with high schema coverage, the baseline is 3 even without param info in the description.
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 ('Press') and the resource ('keyboard shortcut') with examples. It distinguishes this from sibling tools like desktop_keyboard_type (which types text) and desktop_mouse_click, but doesn't explicitly differentiate from all siblings. The purpose is specific and unambiguous.
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 desktop_keyboard_type or browser_type. It lacks context about appropriate scenarios, prerequisites, or exclusions. The examples imply usage for common shortcuts but offer no explicit usage rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_keyboard_typeC
Type text using the keyboard (simulates key presses)
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to type | |
| delayMs | No | Delay between keystrokes in ms (default: 0) |
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 mentions simulation of key presses. It doesn't disclose critical behavioral traits like requiring window focus, potential side effects (e.g., unintended input), or that it operates at the OS level rather than within an app. 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 with zero wasted words. It's front-loaded with the core action and includes a clarifying parenthetical, making it highly concise and well-structured.
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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral context (e.g., focus requirements, error conditions) and doesn't explain what happens after typing (e.g., no return values mentioned). This leaves significant gaps for an agent to use it correctly.
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 100%, so the schema fully documents both parameters ('text' and 'delayMs'). The description adds no additional meaning beyond what's in the schema, such as examples or constraints, meeting the baseline for high coverage.
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 text using the keyboard') and the mechanism ('simulates key presses'), which distinguishes it from browser-based typing tools. However, it doesn't explicitly differentiate from sibling 'desktop_keyboard_hotkey' or 'browser_type', which would require a 5.
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 'browser_type' for web contexts or 'desktop_keyboard_hotkey' for shortcut keys. It lacks context about prerequisites (e.g., needing a focused window) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_mouse_clickB
Click at screen coordinates using the mouse
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X coordinate on screen | |
| y | Yes | Y coordinate on screen | |
| button | No | Mouse button (default: left) | |
| clickCount | No | Number of clicks (default: 1) |
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 states the action ('Click') but does not describe what happens after the click (e.g., whether it triggers UI events, if it's blocking, or potential side effects like focus changes). It lacks details on permissions, error conditions, or interaction constraints, leaving significant gaps for a tool that performs a physical 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 directly states the tool's purpose without unnecessary words. It is front-loaded with the core action ('Click at screen coordinates'), making it easy to understand at a glance. 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's moderate complexity (performing a physical mouse action) and no annotations or output schema, the description is minimally adequate. It covers the basic purpose but lacks behavioral details (e.g., what 'click' entails, error handling) and usage context. It is complete enough to understand the tool's intent but insufficient for safe or effective use without additional inference.
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 100% description coverage, so the schema fully documents all parameters (x, y, button, clickCount). The description adds no additional meaning beyond implying coordinate-based clicking, which is already clear from the schema. This meets the baseline score of 3 for high schema coverage.
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 specific action ('Click at screen coordinates') and resource ('using the mouse'), distinguishing it from sibling tools like 'desktop_mouse_move' (which moves without clicking) and 'browser_click' (which is browser-specific). It precisely conveys the tool's function without redundancy.
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 does not mention when to prefer 'desktop_mouse_click' over 'browser_click' (for desktop vs. browser contexts) or 'desktop_keyboard_hotkey' (for keyboard shortcuts), nor does it specify prerequisites like needing mouse control or screen access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_mouse_moveC
Move the mouse cursor to screen coordinates
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | X coordinate | |
| y | Yes | Y coordinate | |
| smooth | No | Smooth movement animation (default: false) |
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 basic action but lacks details on permissions needed (e.g., accessibility settings), side effects (e.g., cursor visibility), or constraints (e.g., screen bounds). This is a significant gap for a tool that interacts with the desktop environment.
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 wasted words. It's front-loaded and easy to parse, making it highly concise and well-structured.
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 desktop interaction tools and the lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like error handling, coordinate system, or interaction with other desktop tools, leaving gaps for an AI agent to use it correctly in context.
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 100%, with clear descriptions for 'x', 'y', and 'smooth' parameters. The description adds no additional meaning beyond what the schema provides, such as coordinate system details (e.g., origin at top-left) or 'smooth' animation specifics. Baseline 3 is appropriate as the schema does the heavy lifting.
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 ('Move') and target ('mouse cursor to screen coordinates'), which is specific and unambiguous. However, it doesn't distinguish this tool from sibling tools like 'desktop_mouse_click', which might also involve mouse movement, though the distinction is somewhat implied by the name.
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. For example, it doesn't specify if this is for desktop interactions only (vs. browser tools) or when to prefer 'desktop_mouse_click' for combined move-and-click actions. There's no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_window_focusC
Focus a window by title (partial match)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Window title to match (partial) |
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 action ('focus a window') and matching logic ('partial match'), but lacks critical details: what happens if multiple windows match (e.g., first match, error), whether it requires specific permissions or window states, and what the expected outcome is (e.g., window brought to foreground). For a mutation tool with zero annotation coverage, this is insufficient.
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 with zero waste. It is front-loaded with the core action and includes essential detail (partial matching) without redundancy. Every word earns its place, making it highly concise and well-structured.
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 (a mutation operation with no annotations and no output schema), the description is incomplete. It doesn't explain behavioral traits like error handling, matching precedence, or system requirements. While the schema covers the parameter, the lack of output schema and annotations means the description should provide more context about results and constraints, which it fails to do adequately.
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 100%, with the parameter 'title' fully documented in the schema as 'Window title to match (partial)'. The description adds no additional meaning beyond what the schema provides, such as examples of partial matching or edge cases. With high schema coverage, the baseline score of 3 is appropriate.
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 ('focus') and resource ('a window'), and specifies the matching mechanism ('by title (partial match)'). It distinguishes from sibling tools like desktop_window_list (which lists windows) and desktop_window_resize (which resizes windows), though it doesn't explicitly name these alternatives. The purpose is specific and actionable.
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 the window must be visible or active), nor does it compare to siblings like desktop_window_list (for finding windows) or desktop_app_launch (for opening applications). Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_window_listA
List all visible windows with their titles, process names, and positions
| Name | Required | Description | Default |
|---|---|---|---|
No 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 discloses the tool's behavior by specifying what information is returned (titles, process names, positions) but lacks details on format, ordering, or potential limitations (e.g., hidden windows, performance impact). This provides basic transparency but misses richer 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 ('List all visible windows') and adds specific details without waste. Every word contributes to understanding the tool's function.
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 no annotations, no output schema, and 0 parameters, the description is complete for a simple read operation but lacks output details (e.g., return format, error handling). It covers the basic 'what' but not the 'how' of results, leaving gaps for an agent to infer behavior.
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?
There are 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately does not discuss parameters, earning a high baseline score for not adding unnecessary information.
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 specific action ('List') and resource ('all visible windows') with precise attributes ('titles, process names, and positions'). It distinguishes from siblings like desktop_window_focus or desktop_window_resize by focusing on enumeration rather than manipulation.
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 gathering window information but does not explicitly state when to use this tool versus alternatives (e.g., screenshot_window for visual capture or desktop_window_focus for interaction). No exclusions or prerequisites are mentioned, leaving usage context inferred rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
desktop_window_resizeC
Resize and/or move a window by title
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Window title to match (partial) | |
| x | No | New X position | |
| y | No | New Y position | |
| width | No | New width | |
| height | No | New height |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the action but doesn't describe important behavioral aspects: whether this requires specific permissions, what happens if multiple windows match the partial title, whether changes are immediate or animated, or what happens on failure. The description is minimal and lacks 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 extremely concise - a single 6-word phrase that communicates the core functionality without any waste. It's front-loaded with the essential action and target, 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?
For a mutation tool with 5 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't address critical context like error conditions, coordinate reference frames, what 'partial' matching entails, or what happens when only some parameters are provided. The agent would need to guess about important operational details.
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 100%, so the schema already documents all 5 parameters with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain coordinate systems, units, or how partial title matching works. Baseline 3 is appropriate when schema does the heavy lifting.
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 ('Resize and/or move') and the target ('a window by title'), providing specific verb+resource. However, it doesn't explicitly differentiate from sibling tools like desktop_window_focus or desktop_window_list, which also operate on windows by title.
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 mention whether this should be used instead of desktop_window_focus for positioning, or how it relates to other window manipulation tools. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_fullscreenB
Capture the entire screen or a specific display
| Name | Required | Description | Default |
|---|---|---|---|
| display | No | Display number (0-indexed). Omit for primary display. |
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 such as output format (e.g., image file, base64), permissions needed, side effects, or error conditions. For a capture 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 front-loads the core purpose without unnecessary words. Every part earns its place by specifying the capture scope, 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 no annotations, no output schema, and a single parameter with full schema coverage, the description is incomplete. It doesn't explain what is returned (e.g., image data, file path), potential errors, or system dependencies, leaving gaps for a tool that performs a system-level operation.
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 100%, so the schema already documents the 'display' parameter with its description. The description adds no additional parameter semantics beyond implying the scope ('entire screen or a specific display'), which aligns with but doesn't enhance the schema. Baseline 3 is appropriate when schema does the heavy lifting.
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 ('capture') and target ('entire screen or a specific display'), making the purpose immediately understandable. It distinguishes from sibling 'screenshot_region' and 'screenshot_window' by specifying full-screen capture, though it doesn't explicitly name those alternatives. The description avoids tautology by not just restating the tool name.
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 when to use this tool (for full-screen or display-specific capture) versus alternatives like 'screenshot_region' or 'screenshot_window', but it doesn't explicitly state when-not-to-use or name the alternatives. The context is clear but lacks explicit guidance on tool selection, leaving some interpretation to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_regionC
Capture a rectangular region of the screen
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Left edge X coordinate | |
| y | Yes | Top edge Y coordinate | |
| width | Yes | Width in pixels | |
| height | Yes | Height in pixels |
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 the basic action. It doesn't disclose behavioral traits like whether it requires user consent, saves files to disk, returns image data, has rate limits, or affects system state. For a screen capture tool with zero annotation coverage, this is a significant gap.
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 with zero waste. It's front-loaded with the core action and resource, making it immediately scannable and appropriately sized for the tool's complexity.
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?
For a screen capture tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after capture (e.g., returns image bytes, saves to file), error conditions, or platform dependencies. Given the sensitivity of screen capture operations, more context is needed.
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 100%, so the schema fully documents all four parameters (x, y, width, height). The description adds no parameter-specific information beyond implying rectangular region capture. Baseline 3 is appropriate when the schema does the heavy lifting.
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 ('capture') and resource ('rectangular region of the screen'), making the purpose immediately understandable. It distinguishes from sibling tools like 'screenshot_fullscreen' and 'screenshot_window' by specifying a region rather than fullscreen or window capture, though it doesn't explicitly name those 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 provides no guidance on when to use this tool versus alternatives like 'screenshot_fullscreen' or 'screenshot_window'. It doesn't mention prerequisites (e.g., screen access permissions) or typical use cases (e.g., capturing specific UI elements).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_windowC
Capture a specific window by title (partial match)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Window title (partial match) |
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 states the tool captures a window via partial title match, implying it's a read operation (screenshot) that likely doesn't modify the window. However, it doesn't disclose critical behaviors like what happens on match failures, whether it captures the entire window or just visible parts, permissions needed, or output format (e.g., image data). This leaves significant gaps 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, efficient sentence with zero waste. It's front-loaded with the core action ('capture') and resource ('window'), followed by the key constraint ('by title (partial match)'). Every word earns its place, making it highly concise and well-structured.
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 (involving window capture with partial matching), no annotations, and no output schema, the description is incomplete. It doesn't explain the return value (e.g., image format, error handling), behavioral nuances, or how it integrates with sibling tools like 'desktop_window_list'. For a tool that could fail or produce varied outputs, more context is needed.
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 100% description coverage, with the 'title' parameter fully documented in the schema. The description adds minimal value beyond the schema by reiterating 'partial match', but doesn't provide additional context like examples of partial matching, case sensitivity, or how to handle ambiguous titles. Baseline 3 is appropriate as the schema does the heavy lifting.
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 ('capture') and resource ('a specific window'), specifying it's for screenshots. It distinguishes from sibling 'screenshot_fullscreen' and 'screenshot_region' by focusing on windows, but doesn't explicitly differentiate from 'browser_screenshot' which might also capture browser windows. The purpose is specific but could be more precise about 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 like 'screenshot_fullscreen', 'screenshot_region', or 'browser_screenshot'. It mentions 'by title (partial match)' which hints at a usage condition, but doesn't explain when this is preferable or what happens if multiple windows match. No explicit alternatives or exclusions are provided.
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.
20 tool updates
v1.0.0- First observed
browser_click - First observed
browser_close - First observed
browser_navigate - First observed
browser_open - First observed
browser_read - First observed
browser_screenshot - First observed
browser_type - First observed
desktop_app_launch - First observed
desktop_clipboard_read - First observed
desktop_clipboard_write - First observed
desktop_keyboard_hotkey - First observed
desktop_keyboard_type - First observed
desktop_mouse_click - First observed
desktop_mouse_move - First observed
desktop_window_focus - First observed
desktop_window_list - First observed
desktop_window_resize - First observed
screenshot_fullscreen - First observed
screenshot_region - First observed
screenshot_window
TDQS
Each tool has a clearly distinct purpose with no ambiguity. The browser tools handle web interactions, desktop tools manage OS-level operations, and screenshot tools capture different screen areas, all with specific, non-overlapping functions.
All tools follow a consistent snake_case naming pattern with clear verb_noun structure (e.g., browser_click, desktop_clipboard_read, screenshot_fullscreen). The naming is predictable and organized by domain prefixes (browser_, desktop_, screenshot_).
With 20 tools, the count is slightly high but reasonable for the broad scope of desktop automation covering browser control, OS interactions, and screenshot functionality. Each tool serves a distinct purpose, though some could potentially be consolidated.
The toolset provides comprehensive coverage for desktop automation, including full browser control (navigation, interaction, reading), OS operations (clipboard, keyboard, mouse, windows), and screenshot capabilities (fullscreen, region, window). No obvious gaps exist for the stated purpose.
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
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA standalone MCP server for Windows desktop control, enabling screenshots, mouse and keyboard input, app launch, window/display management, and clipboard access via natural language.1MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that lets Claude Desktop and Claude Code control your PC — take screenshots, click, type, manage windows, and more.MIT
- AlicenseNot gradedqualityDmaintenanceThis MCP server enables browser automation (navigation, clicking, screenshots) and file reading (Excel, Word, PowerPoint, CSV, images) for Claude Code and any MCP client.MIT
- AlicenseNot gradedqualityBmaintenanceA Windows desktop control MCP server that gives Claude eyes and hands—screen capture with coordinate-grid overlays, pixel-perfect DPI-correct mouse/keyboard input via a Rust backend, and direct PowerShell command execution, enabling full local desktop automation through natural language.101MIT
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/K1ta141k/mcp-desktop-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server