Skip to main content
Glama
5omeOtherGuy

linux_desktop

by 5omeOtherGuy

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation2/5

    desktop_status, desktop_observe, and desktop_exec are largely distinct, but desktop_cancel and desktop_reset have heavily overlapping descriptions—both release input and reset persistent variables. Additionally, desktop_exec's ability to call w.observe() blurs the boundary with the standalone desktop_observe tool.

    Naming Consistency4/5

    All tools share the consistent desktop_ prefix and use snake_case, making the naming predictable. The pattern is mostly desktop_<action>, though 'status' is a noun rather than a verb and 'exec' is an abbreviation, which are minor deviations.

    Tool Count5/5

    Five tools is a well-scoped size for a desktop automation server. Each tool covers a phase of the workflow—discover, observe, execute, cancel, and reset—without unnecessary bloat.

    Completeness4/5

    The set covers the core lifecycle of discovery, observation, execution, and cleanup, and desktop_exec's arbitrary Python capability provides broad automation coverage. A notable minor gap is the lack of a clear way to query the runtime/worker state, which would help agents decide between cancel and reset.

  • Average 3.8/5 across 5 of 5 tools scored. Lowest: 2.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit 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.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • 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

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description adds a useful behavioral detail beyond the annotations: 'a window screenshot focuses that window,' which is a potential side effect. With readOnlyHint=false, this is meaningful context. However, it does not disclose whether observing controls has other side effects, what diff does, or what the output looks like, leaving some behavioral ambiguity.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise, with two front-loaded sentences and no filler. It earns its space by stating the core behavior and a key side effect. It could be slightly longer to cover parameters, but as written it is efficiently structured.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With 4 parameters, 0% schema coverage, and no output schema, the description is too sparse to fully prepare an agent for correct invocation. It lacks explanations for diff, screenshot, and max_elements, and does not clarify how this tool relates to desktop_status. Significant gaps remain.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description must compensate. It partially explains the window parameter by noting that omitting it captures the full desktop. But it says nothing about diff, screenshot, or max_elements, all of which are undocumented in both the schema and description.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states a specific action ('Observe controls and screenshot together') and the resource being acted on. It also distinguishes between window and full-desktop modes, which gives concrete scope. However, it does not explicitly differentiate itself from sibling tools like desktop_status, so the differentiation is not fully explicit.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 desktop_status, desktop_exec, desktop_cancel, or desktop_reset. It only gives parameter-level guidance ('Omit window for the full desktop'), which helps with invocation but not tool selection.

    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?

    The description adds meaningful operational context beyond the annotations: the environment is persistent across calls, desktop and display(image) are preloaded, and w.observe() is needed to obtain UI evidence. This is useful behavior disclosure that is not present in the schema or annotations. It aligns with the destructiveHint=true annotation by implying the execution can change the desktop state, and there is no contradiction.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise at three sentences, front-loads the core purpose, and avoids filler. Each sentence adds useful information, though the final 'See server instructions' clause is a deferral rather than self-contained content. Overall, it is efficiently structured.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is complex (persistent Python desktop automation) yet has no output schema, no parameter descriptions, and minimal annotation depth beyond a destructive hint. The description leaves key gaps: return value behavior, how to structure code, what 'persistent' means across invocations, and how the preloaded objects work. 'See server instructions' shifts essential invocation details elsewhere, making the definition incomplete for an agent to use reliably.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, and the description does not directly explain the 'code' or 'timeout' parameters. It hints that code should use preloaded objects and batch actions, but it does not specify expected syntax, output, or timeout behavior. The description fails to compensate for the complete lack of parameter documentation in the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with 'Run persistent Python desktop automation,' a specific verb and resource that clearly establishes this as the execution entrypoint among its siblings (status, observe, cancel, reset). It goes beyond a tautology and gives the agent a concrete action. It could be slightly more explicit about what desktop automation encompasses, but it is distinguishable from the related 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/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description offers usage guidance such as 'Batch actions, verify the result, and call w.observe() to return UI evidence,' which implies a workflow. However, it does not explicitly state when to choose desktop_exec over desktop_observe, desktop_status, or the other siblings, nor does it discuss limitations or alternatives. The reference to server instructions pushes important decision-making outside the definition.

    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?

    The readOnlyHint annotation already establishes that this is a safe, non-mutating operation. The description adds value by specifying what gets inspected (capabilities, screen geometry, windows), which is useful behavioral context beyond the annotation alone.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    A single, front-loaded sentence conveys purpose, scope, and usage timing with no wasted words. Every phrase earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a parameterless read-only status tool, the description is complete enough: it states what the tool reveals and when to invoke it. It does not describe the output format, but given the absence of an output schema and the simple status nature, this is a minor gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has zero parameters, so there is nothing for the description to explain about arguments. This matches the baseline for a parameterless tool.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states that this tool discovers Linux desktop capabilities, screen geometry, and windows, which is a specific verb and resource. It does not explicitly distinguish itself from sibling desktop_observe, but the naming and content make its role reasonably clear.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'before choosing a target' gives a clear usage context: this tool is intended as a pre-action discovery step. It does not mention when not to use it or name alternative tools, so it stops short of a 5.

    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?

    The annotations only indicate readOnlyHint=false, so the description carries the burden of disclosing side effects. It does this well by explicitly naming three behaviors: stopping the worker, releasing held input, and resetting persistent variables. It does not cover error cases or reversibility, but the main mutating impact is transparent.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    A single sentence with the primary action front-loaded and every clause adding real information: stopping the worker, releasing input, and resetting variables. There is no filler or repetition.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given 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 provides the essential contract: what is stopped, what is released, and what state is reset. It could be more complete by mentioning behavior when no worker is running or what success/error output looks like, but the core calling context is adequately covered.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, and the schema description coverage is 100%, so there are no parameter semantics to document. The description appropriately adds no parameter-related noise, earning the baseline for a no-parameter tool.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Stop'), a clear target ('the running desktop worker'), and lists the concrete side effects ('release its held input', 'reset persistent variables'). This clearly distinguishes it from sibling tools like desktop_status, desktop_observe, and desktop_exec.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'Stop the running desktop worker' implies the tool should be used when a worker is currently running and needs to be halted. However, it does not explicitly compare against desktop_reset or state when not to use this tool, so the usage guidance remains implied rather than explicit.

    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?

    The readOnlyHint=false annotation already indicates a mutating operation. The description adds useful behavioral context by stating that the runtime is reset and input is released, while reassuring that user applications remain open. It does not detail exactly what state is lost, but it goes beyond the annotation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two short sentences with the core action front-loaded and the safety boundary in a concise follow-up. Every word earns its place; there is no filler or redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given 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 adequately conveys purpose and a critical safety guarantee. It could be more explicit about what persistent runtime state is lost or whether the reset is reversible, but the core information needed to invoke the tool is present.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters and an empty schema, so there is no parameter meaning for the description to add. The baseline of 4 is appropriate because no parameter documentation is needed or expected.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description names the specific action 'Reset' and the resource 'persistent desktop runtime,' adding 'release input' to capture the secondary effect. It also explicitly states what it does not do ('Does not close user applications'), which distinguishes it from sibling tools like desktop_exec or desktop_cancel.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description gives clear context for when the tool is appropriate: resetting the persistent runtime and releasing input. It does not explicitly reference alternatives or exclusions, but the simple, well-defined action is enough for an agent to select it appropriately.

    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

linux-computer-use MCP server

Copy to your README.md:

Score Badge

linux-computer-use MCP server

Copy to your README.md:

Latest Blog Posts

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/5omeOtherGuy/linux-computer-use'

If you have feedback or need assistance with the MCP directory API, please join our Discord server