desktop-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool maps to a distinct input modality or query—screenshot, pointer actions, keyboard actions, and state queries—so there is little chance of selecting the wrong tool. The only adjacent pair is type_text vs key, but their descriptions clearly separate literal text entry from chords/hotkeys.
Naming Consistency4/5Most names are short, lowercase imperative verbs (click, move, drag, scroll, wait), with a few compound state/query names (cursor_position, desktop_info) and two verb_noun pairs (type_text, list_windows). The style is readable and predictable, though not every tool follows a uniform verb_noun pattern.
Tool Count5/511 tools cover the core desktop-automation surface without redundancy or bloat. Each tool addresses a distinct need, so the count feels intentional and well-scoped.
Completeness5/5The set provides observation (screenshot, cursor_position, list_windows, desktop_info), mouse control (click, move, drag, scroll), keyboard control (type_text, key), and a synchronization primitive (wait), covering the full cycle of GUI automation. I don't see an obvious missing operation that would leave an agent stuck in normal desktop flows.
Average 3.6/5 across 11 of 11 tools scored. Lowest: 2.7/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 2 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Pause, then look again,' which hints at a screenshot but doesn't disclose that the pause is blocking, how the screenshot is handled, or that the screenshot is optional (though the schema implies it). No side effects or return behavior are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It places the core action ('Pause') first and follows with a usage hint. It is appropriately brief, though possibly too terse given the missing details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters and no output schema, the description still falls short. It doesn't clarify the screenshot behavior (when it's taken, whether it's after the pause), the meaning of default values, or what the tool returns. An agent would need to infer too much from the parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does 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 provides no explanation of the 'seconds' or 'screenshot' parameters, nor their defaults. The parameter names are self-explanatory, but the description adds zero semantic value beyond the schema's field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Pause') and a resource context (page loads, animations), and the phrase 'look again' implies a screenshot. However, it's vague about whether the operation is purely a delay or also includes a capture, and it doesn't differentiate clearly from the sibling 'screenshot' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use while a page loads or an animation finishes,' providing a concrete when-to-use scenario. It doesn't mention when not to use it or alternatives, but the context given is specific enough for an agent to recognize the situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states that the tool moves the pointer without clicking; it omits any mention of the screenshot parameter, whether the move is instantaneous or animated, or any side effects (e.g., triggering hover effects). No information on coordinate system or edge cases is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler. The core purpose is front-loaded, and the differentiating 'without clicking' appears early. It is appropriately minimal, though the screenshot parameter is not mentioned in the description, which is a minor structural omission.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pointer-move tool with no annotations and an unexplained screenshot parameter, the description is incomplete. It does not clarify the coordinate origin, whether coordinates are relative to the screen or window, or what the screenshot parameter does. The tool is simple enough that the missing info is notable but not catastrophic, yet the description leaves the agent guessing on a parameter that could affect behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning to any of the parameters. It mentions (x, y) but that is already in the schema as integers. The screenshot parameter is completely unexplained — the description does not hint at when it should be set to true or what it does. The description adds zero value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (move pointer), the target (to x,y), and the key differentiator from siblings: 'without clicking'. It explicitly mentions a use case ('useful for hover states'), which immediately distinguishes it from the click, drag, and scroll tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a usage scenario (hover states) but does not explicitly say when not to use this tool versus alternatives like click or drag. It contrasts with clicking but offers no explicit exclusions or alternative routing beyond the implicit 'without clicking' context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
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 and coordinate system, but does not mention side effects, return values (e.g., whether a screenshot is returned), or prerequisites like window focus or timeouts. It is not misleading but very minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the core action front-loaded. It includes parameter details in a compact format without any redundant text. Every sentence earns its place, making it appropriately concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a click tool and no output schema, the description covers the essential action and key parameters. However, it omits potential context such as what happens after the click (does it capture a screenshot?), whether the cursor is moved, and any error conditions. For a tool with no annotations, this is a moderate gap but not severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does 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 clarifies the meaning of x and y by specifying they are in screenshot-image coordinates, and it explicitly explains button ('left', 'right', 'middle') and count ('2 for a double-click'). However, the screenshot parameter is not explained, and the count semantics beyond 2 are unspecified. Overall, it adds meaningful value to most parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Click') and a coordinate system ('screenshot-image coordinates'), which clearly identifies the tool's purpose. It distinguishes from sibling tools like move, drag, or scroll by focusing on a simple click action, though it does not explicitly name an alternative. The mention of button and count further specifies the behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 click vs. double-click via count, or when to use drag or scroll instead. It does not mention any exclusions or preferred contexts. The only usage hint is the parameter explanation, but that is about how to invoke, not when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It describes only the physical gesture and does not mention what the tool returns (despite a 'screenshot' parameter defaulting to true), whether the action is reversible, or any side effects on the UI. This is a significant gap for a tool that manipulates the system state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the essential action. It is appropriately concise with no filler, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no parameter descriptions, and no annotations, this description is insufficient. It omits coordinate conventions, button values, and return behavior, leaving the agent with too many unknowns to call the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description provides no parameter details. It does not clarify the coordinate system (screen vs window-relative), units, the meaning of the 'button' parameter, or the 'screenshot' parameter. An agent has to guess these crucial details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the drag action (press, move, release) and provides concrete use cases (selecting text, moving windows, dragging sliders), which sufficiently distinguishes it from sibling tools like click and move. The verb and resource are 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.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit use cases ('Use for selecting text, moving windows, and dragging sliders') that tell the agent when to invoke it. However, it does not state when not to use it or name alternatives, so some inference is required, but the guidance is still clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It explains the core key press action and the cross-platform behavior of 'cmd', but omits the 'screenshot' parameter (default true) which implies the tool may capture a screenshot after pressing, and does not mention 'presses' effects. These are significant undocumented behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two short sentences. The core purpose and examples are front-loaded, and the modifier explanation is directly relevant. No redundant content exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, the description covers the primary action but misses the screenshot side effect and press count, which are important for correct usage. The lack of output schema and annotations means the description should be more thorough to compensate, but it is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all parameters. It elaborates on 'combo' through examples and modifier details, but gives no explanation for 'presses' or 'screenshot'. The description only partially compensates for the schema's lack of information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool presses a key or chord, with concrete examples like 'enter', 'ctrl+s', 'alt+tab'. This verb+resource definition is specific and distinguishes it from sibling tools like 'type_text' (which types text) and 'click' (which clicks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for keyboard shortcuts and chords, and explains modifiers. However, it does not explicitly contrast with alternatives or state when not to use it (e.g., for typing text). Usage context is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains dy semantics (negative scrolls down, positive scrolls up), which adds value beyond the schema. However, it does not disclose other behaviors like the default screenshot or dx handling. Given no annotations, the description carries the full burden but is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core purpose, no wasted words. It efficiently communicates the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple scroll action, the description covers the core (location and vertical direction) but leaves dx and screenshot semantics unspecified. It does not mention return value, but no output schema exists, so that is not strictly required. Still, the screenshot default behavior should be disclosed for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly explains dy, and x,y are self-evident from the phrase 'at (x,y)'. However, dx and screenshot parameters are not described, and with 0% schema coverage, the description only partially compensates. The lack of explanation for screenshot (default true) could lead to unexpected behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Scroll'), a target ('under the pointer at (x, y)'), and a clear action. It is distinct from sibling tools like click, move, and drag, even without explicit comparison, because the scroll action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 like drag or key. There are no exclusions, prerequisites, or situational hints. The description only explains parameter semantics, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions 'where the OS allows it', acknowledging platform limitations, but does not detail what happens on unsupported systems (e.g., empty list, error) or clarify that it is a read-only, side-effect-free operation. This leaves some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and output. It contains no unnecessary words and is directly usable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description adequately conveys the essential behavior and its limitation. It could explicitly state the return format (list) but 'List' implies that. Given the low complexity, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage (trivial empty schema), the description has no parameter details to add. The baseline of 4 applies because there are no parameters to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (list), resource (open windows), and what it returns (titles and geometry). This clearly distinguishes it from sibling tools that perform actions (click, drag, type_text) or capture screenshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. While the purpose is clear, there is no mention of when listing windows is appropriate, such as before automation to determine target coordinates, or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden of behavioral disclosure. It reveals the newline-as-Enter behavior and the focus requirement, but it does not mention the effect of the 'screenshot' parameter (e.g., whether a screenshot is taken after typing) or what happens if no element is focused. It adds some value but leaves key behavioral aspects undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and then a concise usage/behavior note. Every word earns its place—no fluff, no redundancy, and the critical 'click first' instruction is immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with no output schema and no annotations, the description covers the main action, the focus requirement, and the newline behavior. However, the screenshot parameter's purpose is left completely unexplained, which is a notable omission given it is optional and defaults to true. The description is adequate for basic use but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clearly implies that 'text' is the string to type, but it provides zero explanation of the 'screenshot' parameter, which is optional and defaults to true. This is a significant gap because the screenshot behavior is not mentioned at all, leaving the agent uncertain about its purpose or when to disable it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('type') and resource ('text into whatever currently has keyboard focus'), clearly distinguishing it from siblings like click, key, and move. The focus qualifier adds precision, making the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear prerequisite ('Click the target field first') and defines how newlines are handled, which informs when to use this tool (for text input into focused fields). It does not explicitly name alternatives or exclusions, but the focus-based instruction implies a compare-and-contrast with click or key tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the tool reports in both image and screen coordinates, which is useful. However, it doesn't mention that it's read-only (though obvious), nor the output structure, though an output schema exists. It adequately covers the main behavior but could add a note about no side effects or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the core action and covers both coordinate systems. No filler, no redundancy. Reads clearly and efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with a descriptive output schema (not shown), the description covers the essential purpose. It doesn't mention edge cases like whether the cursor must be within a window, but that's likely covered by the output schema. The description is complete for a typical query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 per the rubric. No parameter explanation is needed. The description correctly focuses on the output rather than inputs, which is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Report') and a clear resource (the pointer position), and specifies two coordinate systems (image and screen). This makes the tool's function immediately clear and distinguishes it from sibling tools like click or move, which are actions rather than queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to get the current pointer location, but it does not explicitly say when to use it versus alternatives like screenshot or desktop_info. It also doesn't mention that it's a read-only query or that it's useful before other actions. Fine for a simple tool, but lacks guidance on when to choose this over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses exactly what the tool returns (environment, backends, safety limits) and is implicitly a read-only reporting operation. It does not mention side effects or error behavior, but for a simple info tool that's acceptable. It adds value beyond the empty schema by defining the semantic content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core purpose, the second provides usage timing. It is front-loaded with the key information and contains zero fluff. Every word earns its place. Ideal length for a tool of this simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter info tool with no output schema, this description is complete. It explains what the tool does and when to call it. The agent has everything needed to decide whether to invoke it and what to expect. No further clarification is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty with 100% schema description coverage by default. Per the rubric, the baseline is 4 when there are no parameters. The description doesn't need to add parameter-specific semantics, and none are present. There is nothing to improve here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Report') and a clear resource: 'the environment, the chosen backends, and the active safety limits.' This is unambiguous and distinguishes it from all sibling tools, which are action-oriented (click, type, etc.). It clearly identifies what information is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises when to call it: 'Worth calling once at the start of a session, or whenever something fails.' This gives clear timing context. It does not explicitly list alternatives, but given the sibling set is all action tools, it's obvious this is the dedicated info tool. Could be improved with a 'when not to use' statement, but it provides solid guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It implies a read-only operation (capturing an image) but does not explicitly state safety, side effects, or limitations such as screen resolution or multi-monitor behavior. The description adds context about the return type but omits potential caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences and every word earns its place. It prioritizes the core action first and then provides timely usage guidance, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers the essential points: what it does, when to use it, and why it matters for other tools. It could mention whether it captures the entire desktop or the primary monitor, but the core usage is well covered given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts no parameters, and the input schema confirms this. Since there are no parameters to document, the description correctly says nothing about them, and the baseline for zero-parameter tools is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Capture the desktop') and the resulting output ('return it as an image'). It clearly distinguishes itself from sibling tools like click, move, and type_text, which all operate on coordinates relative to this image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to take a screenshot: 'before acting' and 'after any action whose result you need to see.' It also tells agents why this matters by noting that 'all other tools expect coordinates measured on this image,' which connects to how the tool should be used in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/Zetakai/desktop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server