Skip to main content
Glama
HaizhuAI

android-apk-orchestrator

by HaizhuAI

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct stage or concern in the APK orchestration pipeline: agent discovery, case creation, fingerprinting, dispatch, full orchestration, status, and report retrieval. Even status and report are clearly separated: status reads the machine-readable state, while report returns the synthesized output path.

    Naming Consistency4/5

    All tools share the consistent 'apk_' prefix and mostly follow a verb-like action pattern such as list, create, dispatch, orchestrate. Minor deviations are apk_status and apk_report, which read more like noun endpoints than actions, but the overall convention remains predictable and readable.

    Tool Count5/5

    Seven tools is well-scoped for an APK orchestration server. Each tool maps to a meaningful workflow step without redundancy or unnecessary surface area, and the count supports both targeted operations and a full pipeline run.

    Completeness4/5

    The tool set covers the full orchestration lifecycle: discovery, case creation, targeted analysis, dispatch, full pipeline execution, status polling, and report access. Minor gaps exist around managing existing cases or retrieving individual agent artifacts, but agents can complete the core workflow without dead ends.

  • Average 3.1/5 across 7 of 7 tools scored.

    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.

  • 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 burden of behavioral disclosure. It indicates a read-like 'Return' behavior, but it does not explain whether any report is generated on the fly, whether case_dir must exist, or what 'if present' means operationally.

    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 a single sentence with no filler or repetition, and it front-loads the main action. It is concise and structurally easy to parse, though it could be more informative without sacrificing brevity.

    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 has only one required parameter and an output schema, so the description does not need to explain return structure. However, it omits when this tool should be invoked relative to siblings, what case_dir must contain, and whether the report is already synthesized or synthesized by this call.

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

    Parameters1/5

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

    Schema description coverage is 0% and the description never mentions case_dir. The agent must infer the parameter's meaning entirely from its name, with no help from the tool description. This is a significant gap for a required parameter.

    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 states a specific action ('Return') and a clear resource (the synthesized report path), with an additional optional element (agent index). It is reasonably clear, but it does not explicitly differentiate from sibling tools like apk_status or apk_list_agents.

    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 gives no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as a completed case or prior orchestration, nor does it reference any sibling tool or condition for selection.

    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 carries the full burden. It discloses that the tool runs a multi-agent pipeline and writes REPORT.md, which is useful, but it omits side effects, whether it is long-running or asynchronous, whether existing files are overwritten, and what the output schema represents.

    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 no filler or redundant words. The action, scope, and deliverable are front-loaded, making it easy to read and remember.

    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?

    For a complex orchestration tool with four parameters, zero parameter documentation, and no behavioral notes, the description is too thin. Even though an output schema exists, the agent cannot know the meaning of 'agents'/'extras'/'case_dir' or important operational details needed to invoke the tool correctly.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description explains none of the four parameters: apk_path, agents, extras, and case_dir. The agent is left without any meaning for the optional parameters or how they affect orchestration.

    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?

    States a clear verb and resource: 'Run the full 7-agent Android reverse pipeline and write REPORT.md.' The reference to 'full 7-agent' distinguishes this aggregate orchestration from the more granular sibling tools, though it does not explicitly name alternatives.

    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 gives no explicit guidance about when to use this tool versus apk_dispatch, apk_report, or other siblings. There are no conditions, prerequisites, or exclusions; only the phrase 'full 7-agent pipeline' implies the intended scope.

    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 provided, the description carries the full burden of behavioral disclosure. It does reveal the main side effects: hashing the APK, preserving it, and writing a case workspace, which at least implies a non-destructive operation. However, it doesn't disclose what 'preserve' concretely does (copy, move, archive), whether an existing case_dir is overwritten or appended to, whether directories are created, or what failure modes exist.

    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 a single sentence of about a dozen words with no filler, and the action sequence is front-loaded ('Hash and preserve... then write...'). It earns its place efficiently, though its brevity is partly responsible for the gaps in usage and parameter guidance.

    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?

    For a tool that creates a case workspace with side effects, the description is a skeleton. It doesn't explain the purpose of extras, the relationship between apk_path and case_dir, what the resulting workspace contains, or behavior when the case already exists. The presence of an output schema reduces the need to describe return values, but the input-side ambiguities remain unresolved.

    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, but it only does so partially. It tells the agent that apk_path refers to an APK/XAPK file and hints that 'case workspace' maps to case_dir, but it says nothing about the extras parameter at all. With three parameters and zero schema descriptions, leaving one parameter completely unexplained is a meaningful gap.

    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 states specific actions ('Hash and preserve') on a specific resource ('an APK/XAPK') followed by a concrete outcome ('write a case workspace'). This clearly names the tool's function and distinguishes it from siblings like apk_fingerprint, which would only fingerprint, by adding the case-workspace creation step. However, it doesn't explicitly contrast against siblings, and 'preserve' is slightly ambiguous about what preservation entails.

    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?

    There is no guidance on when to use this tool versus alternatives. Given sibling tools like apk_fingerprint (which likely overlaps on hashing) and apk_dispatch/apk_orchestrate (which may handle case workflows), an agent gets no signal about which tool fits which scenario. The 'preserve' wording implies evidence-collection use, but that is never made explicit, and no exclusions or prerequisites are stated.

    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 explicitly labels the operation as a read, disclosing its read-only nature. It adds context about the file's origin ('written by the orchestrator'), but does not describe error behavior or what happens if the file is missing.

    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 a single concise sentence with no wasted words. It is front-loaded with the action and resource, though it could contain slightly more useful context without becoming verbose.

    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?

    The tool is simple with one parameter and an output schema, so the description need not detail return values. However, it omits any explanation of case_dir semantics or how the path relates to the orchestrator's output, leaving some ambiguity.

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

    Parameters1/5

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

    The schema provides no description for case_dir (0% coverage), and the tool description does not mention the parameter at all. The agent is left to infer the parameter's meaning solely from its name.

    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 uses a specific verb 'Read' and a clear resource 'case status.json written by the orchestrator.' This distinguishes it from sibling tools like apk_orchestrate or apk_report, though it doesn't explicitly name alternatives.

    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 gives no guidance on when to use this tool versus siblings, nor any exclusions or prerequisites. The only implicit context is that the file is produced by the orchestrator.

    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 mentions that agents run 'in wave order' and that the case must already exist, but it does not disclose side effects, whether the operation is synchronous or asynchronous, whether the case is modified, or any permission or safety considerations.

    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 a single, front-loaded sentence with no filler. Every word contributes to the meaning, and the verb + object structure makes the purpose immediately scannable.

    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?

    Despite having an output schema, the description is still under-specified for a tool with no annotations, multiple siblings, and no explicit usage conditions. It leaves 'wave order' undefined, does not explain expected agent input values, and gives no guidance on how this relates to apk_orchestrate or apk_list_agents, making it incomplete for confident tool selection and invocation.

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

    Parameters3/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 does add meaning by tying 'selected specialist agents' to the agents parameter and 'existing case' to case_dir, which goes beyond the bare schema titles. However, it does not explain accepted values, formats, or the meaning of the default null for agents, so it only partially compensates.

    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 ('Run'), a resource ('specialist agents'), and a condition ('against an existing case'). It communicates the core purpose well, but it does not explicitly differentiate itself from the sibling apk_orchestrate, so it falls short of a 5.

    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 'against an existing case' implies the tool should be used only after a case exists, which is useful contextual guidance. However, there is no explicit mention of when not to use it, no reference to alternatives like apk_orchestrate or apk_create_case, and no guidance on prerequisites such as first listing available agents.

    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 provided, the description carries the full disclosure burden. It does add genuine behavioral context — 'fast' and 'without a full decompile' signal a lightweight, presumably non-destructive analysis pass. But it is silent on side effects, whether output is persisted to a case/file, preconditions on the APK, and failure behavior.

    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 nine-word sentence that front-loads the operation and scope, then ends with the cost qualifier ('without a full decompile'). Every word carries signal with zero filler or repetition of the tool name.

    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 one-required-parameter tool with an output schema present, the core action is adequately covered and return values need not be re-explained. But the description omits how this fits the sibling workflow (e.g., whether a case must exist first), any preconditions on the APK, and what consuming the fingerprint entails. The output schema mitigates the return-format gap, but overall context is thin.

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

    Parameters3/5

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

    Schema description coverage is 0% and the description never mentions apk_path explicitly, so the burden is on the description to compensate. The tool name and fingerprinting context make it inferable that apk_path is the path of the APK to fingerprint, but no format, locality (local vs. remote), or validation semantics are given. Weak compensation for a low-coverage 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 states a specific operation — fingerprinting an APK — with an explicit scope: framework/HTTP/SDK/native characteristics. The qualifier 'without a full decompile' plus the unique 'fingerprint' concept cleanly separates it from the sibling suite (create_case, dispatch, status, report, etc.), none of which overlap. It stops short of 5 because the verb is implicit ('fingerprint' used as a noun-as-verb) and it doesn't state what form the fingerprint output takes.

    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?

    'Without a full decompile' and 'fast' implicitly position this as the lightweight option when a quick fingerprint suffices, implying that a full decompile path is the alternative. However, no sibling tool is named, and there is no explicit when-to-use/when-not-to-use guidance relative to the case/dispatch/orchestrate workflow.

    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 provided, the description carries the full burden of behavioral disclosure. It does state the action and output content, but it does not explicitly address side effects, whether the operation is read-only, or edge behavior such as whether unavailable agents are omitted or listed as unavailable. The 'List' verb implies safety, but only implicitly.

    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 a single front-loaded sentence with no filler. Every word conveys needed information: the action, the target entities, and the specific fields returned.

    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, output-schema-bearing listing tool, the description is largely complete: it names the exact content of the response. The only gap is the absence of explicit guidance about when to use this tool in a workflow, which is a minor omission given the low complexity.

    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 input schema is empty with 100% schema description coverage. There is nothing for the description to add about parameters, so the baseline of 4 applies.

    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 and resource: 'List the seven specialist agents' and names the returned content ('source skills, and availability'). This clearly distinguishes it from sibling tools like apk_dispatch or apk_report, which perform different actions.

    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 intended use is implied by the verb 'List' and by being the only listing tool among its siblings, but the description does not explicitly state when to use it versus alternatives or how it relates to preceding actions like apk_dispatch. There is no exclusions or conditional guidance.

    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

android-apk-orchestrator MCP server

Copy to your README.md:

Score Badge

android-apk-orchestrator 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/HaizhuAI/android-apk-orchestrator'

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