Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
--homeNoData storage directory. Precedence: --home → APSA_HOME → QUAYGATE_HOME → MOBILE_AUDIT_HOME → ~/.local/share/mobile-audit
--rootYesAbsolute path to a root directory for audited targets. Required. Can be repeated for multiple roots.
APSA_HOMENoData storage directory. Precedence: --home → APSA_HOME → QUAYGATE_HOME → MOBILE_AUDIT_HOME → ~/.local/share/mobile-audit
QUAYGATE_HOMENoData storage directory. Precedence: --home → APSA_HOME → QUAYGATE_HOME → MOBILE_AUDIT_HOME → ~/.local/share/mobile-audit
--allow-runtimeNoRegisters runtime_execute and runtime_start tools at server startup. Set to 'true' to enable.
--allow-any-rootNoExplicitly removes the root restriction. Set to 'true' to enable.
MOBILE_AUDIT_HOMENoData storage directory. Precedence: --home → APSA_HOME → QUAYGATE_HOME → MOBILE_AUDIT_HOME → ~/.local/share/mobile-audit

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
capabilitiesB

Discover input types, evidence states, runtime requirements and available interfaces.

audit_scanA

Inspect local source/APK/AAB/APKS/IPA using cached intelligence. APKS requires apk_set_device with sdkVersion, supportedAbis, screenDensity and supportedLocales; selected APKs are inspected individually without installation or manifest/resource merging. ipa_trust_policy supplies explicit digest-bound DER anchors for cryptographic chain checks only, without Apple signer identity, revocation or app authenticity verification. Configuration selects a relative manifest or .plist without build-system merge. dependency_module and runtime_configuration select recorded Gradle lock resolution, with optional relative dependency_evidence paths; freshness and installed-build correspondence remain unverified. specs declares project sources/sinks; findings stay candidates. No network or device mutation.

reports_ingest_sarifA

Import another tool's SARIF 2.1.0 results (for example Android Lint, CodeQL or Semgrep) into a new report derived from report_id. Imported results stay candidates with origin external, add no APSA coverage, and are linked to APSA findings of a related weakness at the same location. Result text is untrusted data.

reports_checklistB

Map a report onto a checklist: masvs-v2 (built in) or a checklist TOML inside an MCP root that maps items to MASWE identifiers and APSA rules. Statuses are findings, partial, no-findings-in-checked-scope, not-run, not-applicable or not-assessed; none is a pass.

reports_historyA

First and last observation of each finding across saved reports of one target, for inspection and remediation records. A finding no longer observed is not proof of remediation unless the same checks completed.

specs_validateA

Validate a project taint specification (TOML/JSON, version = 1) before audit_scan uses it. Sources name exact functions returning untrusted url/text; sinks name exact functions (kind webview-load or sql, argument index). Proposed specifications need human review before their findings enter a baseline.

verify_findingA

Cross-check a mobile finding claimed elsewhere (for example by an AI code reviewer) against APSA evidence for target. Give a MASWE-NNNN or CWE-N weakness or an APSA rule ID, optionally with a file path and line. Uses the latest report for target unless report_id is given; rescan=true scans first and saves a report. Verdicts: corroborated, same-file-other-location, path-unmatched (see candidate_paths), file-not-analyzed, not-observed, partial, not-run, not-assessed. APSA never refutes a claim.

intelligence_syncC

Fetch official public mobile advisories and update local cache. Returns per-source failures and scope.

audit_startA

Start a persistent offline audit. APKS requires apk_set_device with sdkVersion, supportedAbis, screenDensity and supportedLocales; selected APKs are inspected individually without installation or manifest/resource merging. ipa_trust_policy supplies explicit digest-bound DER anchors for cryptographic chain checks only, without Apple signer identity, revocation or app authenticity verification. Configuration selects a relative manifest or .plist without build-system merge. dependency_module and runtime_configuration select recorded Gradle lock resolution; optional dependency_evidence paths narrow it, without verifying freshness or installation. specs declares project sources/sinks. Use jobs_status for progress and jobs_cancel to stop it.

jobs_statusC

Read durable job state and progress. An interrupted worker never becomes a successful audit.

jobs_cancelA

Request cancellation of an authorized job; poll jobs_status until terminal.

jobs_listC

List background jobs visible inside this server's configured roots.

intelligence_searchB

Search cached CVEs and OWASP tests with provenance. Does not contact the network.

intelligence_getA

Read an exact CVE; refresh=true fetches its official CNA record into cache.

reports_listB

List saved audit IDs for exact follow-up reads.

reports_getC

Read bounded context pages. Continue using the returned immutable report_id; finding_id pages its evidence. Oversized records remain in local exports.

reports_compareA

Compare exact report IDs, retaining coverage differences and unproven remediation states. verification=true adds source traces and scope/build/assertion pairing; portable_inputs=true requires verification and only normalizes absolute targets for identical, complete canonical SHA256 source inputs with unchanged analysis scope. Binary and runtime bindings remain strict; disappearance never proves remediation.

reports_followupB

Follow one original finding across immutable reports. Distinguish exact observations from possible continuations after location changes, retain comparison blockers and next evidence steps, and bind results to report hashes. No source excerpts, rescans, network or device actions. Disappearance never proves remediation. portable_inputs only permits the existing identical-complete-source relocation rule; binary and runtime bindings stay strict.

audit_reassessB

Re-evaluate a saved inventory against current cached intelligence and save a new report.

dependency_checkA

Query OSV for inventoried package versions and save a reassessed report. query_mode is auto, legacy or batch; auto batches above 100 packages. Exclusion lists are case-sensitive globs for ecosystems, package names or ecosystem:name coordinates. Excluded packages are never transmitted or marked checked from cache. Batched queries preserve per-package pagination and partial failures.

runtime_planB

Generate an editable test scenario. Does not run it or log out the app automatically.

policy_evaluateC

Evaluate team thresholds, explicit coverage requirements and expiring waivers without changing reports.

reports_export_baselineB

Export an explicitly approved baseline inside configured roots. Do not invent approval; pin the returned artifact hash in reviewed CI configuration.

runtime_devicesA

List adb devices and available iOS simulators without changing app state.

Prompts

Interactive templates invoked by user choice

NameDescription
audit_mobile_appA model-neutral workflow for an authorized local mobile app audit.

Resources

Contextual data attached and managed by the client

NameDescription
rule_catalog
rule_catalog
rule_catalog

TDQS

B3.2/5.0

Scored across 24 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, and the descriptions clarify boundaries well. However, audit_scan/audit_start/audit_reassess and reports_get/reports_followup/reports_history/reports_compare overlap enough that an agent may hesitate without reading the full descriptions.

Naming Consistency4/5

The set predominantly follows a snake_case category_action convention (jobs_*, reports_*, audit_*, intelligence_*), making tool families predictable. Minor deviations are the bare capabilities tool and the verb-first verify_finding.

Tool Count3/5

24 tools is heavy for a single MCP server, sitting in the borderline 16-25 range. The mobile security audit domain is broad, but some report and job tools could plausibly be consolidated.

Completeness4/5

The surface covers scanning, persistent jobs, report retrieval/follow-up/compare/history/checklist/SARIF ingest/baseline export, intelligence, dependency checks, spec validation, finding verification, runtime planning/devices, and policy evaluation. Minor gaps such as report deletion or cleanup and explicit approval workflow details are workaroundable.

Maintenance

ActivityMaintained
ResponsivenessNo issues