Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct action: launching an app, opening a URL, capturing the screen, getting screen dimensions, checking a process, and waiting. There is no meaningful overlap or ambiguity among them.

    Naming Consistency3/5

    The naming is generally readable and mostly uses snake_case, but conventions vary: open_app/open_url/get_screen_size follow verb_noun, while app_running and screenshot break that pattern, and wait is just a bare verb. This is a minor inconsistency rather than chaos.

    Tool Count5/5

    Six tools is a reasonable, well-scoped set for a small desktop action utility. Every tool serves a practical purpose and the count feels neither bloated nor thin.

    Completeness4/5

    The set covers the core lifecycle of opening apps/URLs, checking whether they started, waiting, and capturing screen state. Minor gaps exist such as no close_app or window interaction, but agents can still complete common workflows without major dead ends.

  • Average 4.1/5 across 6 of 6 tools scored.

    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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full behavioral disclosure burden. It only says it opens a URL and returns a success flag, but it does not mention that this launches an external browser, whether the call blocks, what happens on invalid input, or any side effects. This is minimal for an action-oriented tool.

    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 compact and well-structured with a front-loaded purpose line followed by Args and Returns sections. Every sentence earns its place, and there is no redundant or vague filler.

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

    Completeness3/5

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

    For a simple two-parameter tool, purpose, arguments, and return value are covered. However, usage guidance and side-effect context are missing, and with no output schema or annotations, the description is only minimally viable rather than fully complete.

    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?

    Schema coverage is 0%, and the description compensates reasonably: url is defined as '完整地址' with an example (http://localhost), and browser is given explicit allowed values (default | chrome | edge | firefox). It does not explain the meaning of 'default' or error behavior, but it adds meaningful semantics beyond the schema.

    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 states '用浏览器打开一个 URL' (open a URL with a browser), which is a specific verb and resource. This clearly distinguishes it from sibling tools like open_app (app opening) and screenshot (screen capture), making the tool's purpose unambiguous.

    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 implies usage (when you need to open a URL in a browser) but gives no explicit guidance about when to use this tool versus alternatives such as open_app. No exclusions or conditions are mentioned, so the agent must infer the appropriate 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 carries the behavioral burden. It discloses lookup behavior (registry DisplayName or PATH) and return contents, which is helpful, but it does not mention side effects like starting a new GUI process, error behavior when the app is not found, or whether it blocks until the app exits.

    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 compact and well-structured: a one-sentence purpose, an Args block with clear parameter semantics, and a Returns note. Every sentence earns its place with no filler.

    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 simple two-parameter launcher with no output schema, the description covers the core invocation semantics and return value. It could be more complete by noting failure conditions or how to handle already-running apps, but nothing critical needed to call the tool correctly is missing.

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

    Parameters5/5

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

    Schema coverage is 0%, so the description must fully explain the parameters. It does: name accepts a display name or exe name, lookup uses registry/PATH, and path is the full exe path with priority over name. This adds meaning the schema completely lacks.

    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 opens with a specific verb and resource: 启动一个已安装的应用 (launch an installed app). This clearly differentiates it from siblings like open_url, screenshot, and app_running, which target different objects or operations.

    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 explains how to launch an app with name or path, but it never states when to prefer open_app over alternatives, or when not to use it. There is no explicit routing such as 'for URLs use open_url' or 'to check if already running use app_running'.

    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 behavioral disclosure burden. It discloses the return values (running and pids) and notes that multiple pids may match, but it does not explicitly state that the operation is read-only, nor does it explain matching semantics (exact vs partial, case sensitivity) or error behavior. This is adequate but not thorough.

    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 compact and front-loaded with the core purpose, followed by clearly separated Args and Returns sections. Every sentence serves a purpose, and the docstring structure makes it easy to scan.

    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 simple one-parameter check tool with no output schema, the description provides the essential elements: purpose, parameter meaning, and return contract. The only minor omissions are matching semantics and explicit read-only affirmation, which are low-risk for a status check. Overall it is complete enough for an agent to invoke correctly.

    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 provides only a string property 'name' with no description (0% coverage). The description compensates by defining name as the process name and offering three illustrative examples ('Docker Desktop', 'docker', 'com.docker.backend'), which gives the agent concrete grounding. It stops short of specifying matching rules, but for a single parameter this is sufficient.

    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 states a specific verb and resource: '检查进程是否在运行' (check whether a process is running), with concrete examples of process names. This clearly distinguishes it from sibling tools like open_app, open_url, screenshot, get_screen_size, and wait, which are all actions rather than a status check.

    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 provides a clear context: it is a read-only status check for a process. Although it does not explicitly name alternatives or exclusion conditions, the sibling set contains no other process-checking tool, so the intended usage is unambiguous. The examples further clarify what qualifies as a process name.

    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?

    There are no annotations, so the description carries the disclosure burden. It reveals the purpose but does not explicitly state that the call blocks, what happens after the delay, or that it has no side effects. For a simple wait operation this is a minor gap, but still a gap.

    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?

    One concise sentence with the operation front-loaded and the purpose in a parenthetical. Every word adds value; no redundancy or unnecessary detail.

    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 low-complexity tool with one parameter and no output schema, the description covers what it does, the parameter unit, and why to use it. It is nearly complete, but an explicit statement of return/behavior would push it to fully self-contained.

    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 schema has 0% description coverage with only an integer ms property, and the description compensates by explicitly linking ms to milliseconds. It does not give valid ranges or limits, but for a single-parameter wait tool, this is enough for correct invocation.

    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 clearly states the tool waits for a specified number of milliseconds and gives a concrete purpose (allowing time for service startup/interface refresh). It is unambiguous and distinct from the sibling tools, which are all about opening, running, or inspecting apps and screens.

    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 parenthetical '用于给服务启动/界面刷新留时间' tells the agent the intended use case. It does not explicitly mention when not to use it or alternative tools, but no sibling provides a sleep/wait operation, so the missing exclusion guidance is not a significant gap.

    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?

    No annotations are provided, so the description carries the full burden. It clearly discloses the output type (virtual desktop size) and unit (physical pixels), and implies a read-only operation with no side effects. It does not explicitly mention side effects or return format, but for a simple getter this is sufficient.

    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, efficiently worded sentence delivers all essential information without any filler or redundancy.

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

    Completeness5/5

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

    For a parameterless, side-effect-free getter with no output schema, the description is complete. It states exactly what is returned and in what unit, leaving no gaps for an agent to infer.

    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, so the baseline of 4 applies. The description adds no parameter-specific information because there are no parameters to document.

    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?

    States a specific verb ('返回') and resource ('虚拟桌面尺寸') with the unit ('物理像素'). It is clearly distinct from siblings like screenshot or app_running, which serve different purposes.

    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?

    No explicit when-to-use or when-not-to-use guidance is provided. However, the tool's purpose is self-evident, and none of the sibling tools overlap with it, so usage is implied rather than stated.

    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?

    No annotations are provided, so the description carries the behavioral burden. It discloses that the tool captures the entire screen, saves to a specified path or a temporary directory when omitted, and returns the saved file path. Missing minor details like permission requirements or overwite behavior, but core behavior 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?

    The description is compact: one purpose sentence plus short Args and Returns lines. Every sentence earns its place and the main behavior is front-loaded.

    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 simple tool with one optional parameter and no output schema, the description covers purpose, parameter behavior, and return value. It does not specify naming, overwite, or multi-monitor behavior, but these are minor for the basic use case.

    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?

    Schema description coverage is 0%, so the description must explain the path parameter. It does: path is the save destination, and omitting it stores the file in a temp directory. This adds meaningful semantic value beyond the bare schema.

    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 states a specific verb and resource: capture a full-screen PNG screenshot. This clearly distinguishes it from siblings like open_app, open_url, and get_screen_size, which do different things.

    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 use case is clear: use this when a full-screen PNG capture is needed. It gives context about the optional path and temporary fallback, and there are no competing screenshot tools among the siblings, so explicit exclusions are not necessary.

    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

pad-actions MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

pad-actions MCP server – quality and maintenance score on Glama

Copy to your README.md: