Skip to main content
Glama
droidasc-mcp

droidasc-mcp

by cnlnn

asc_open_dex_session

Validate and snapshot DEX files to create an immutable hash-bound session for safe analysis; reopen with new inputs when source files change.

Instructions

Validate and snapshot DEX inputs once; return an immutable hash-bound session.

Reuses the validated bundle, not a resident engine. Idle sessions expire and may be evicted at capacity. Source file changes require opening a new session.

Input Schema

NameRequiredDescriptionDefault
dex_pathsYesOrdered standard DEX file paths; combined bytes are server-bounded

Output Schema

NameRequiredDescriptionDefault
codeNo
depthNo
edgesNo
indexNo
itemsNo
limitNo
nodesNo
totalNo
formatNo
groupsNo
moduleNo
offsetNo
sourceNo
statusYes
backendNo
messageNo
sourcesNo
apk_pathNo
coverageNo
has_moreNo
input_idNo
dex_entryNo
directionNo
max_edgesNo
max_nodesNo
span_unitNo
truncatedNo
apk_sha256No
class_nameNo
edge_countNo
input_kindNo
limit_unitNo
node_countNo
session_idNo
source_endNo
superclassNo
total_unitNo
type_matchNo
edge_countsNo
field_countNo
limitationsNo
method_nameNo
next_cursorNo
next_offsetNo
query_cacheNo
scan_errorsNo
access_flagsNo
has_manifestNo
method_countNo
source_startNo
stored_bytesNo
artifact_pathNo
dynamic_sitesNo
source_sha256No
type_relationNo
engine_versionNo
returned_sitesNo
artifact_sha256No
backend_versionNo
candidate_countNo
cleanup_pendingNo
page_limited_byNo
scanned_methodsNo
type_descriptorNo
definition_countNo
field_descriptorNo
idle_ttl_secondsNo
reference_formatNo
selected_modulesNo
unresolved_sitesNo
member_referencesNo
method_descriptorNo
truncation_reasonsNo
unresolved_matchesNo
reference_semanticsNo
response_byte_limitNo
methods_without_codeNo
reserved_index_bytesNo
runtime_completenessNo
scanned_instructionsNo
hierarchy_cycle_detectedNo
instruction_scan_completeNo
runtime_target_resolutionNo
unresolved_sites_truncatedNo
traversal_complete_within_depthNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed23 schema fields changedv0.2.5
    • addedOutput schema / $defs / DexRow / properties / target_index
      Added value: +{
      +  "title": "Target Index",
      +  "type": "integer"
      +}
    • addedOutput schema / $defs / ReferenceGroup
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "caller": {
      +      "title": "Caller",
      +      "type": "string"
      +    },
      +    "dex_entry": {
      +      "title": "Dex Entry",
      +      "type": "string"
      +    },
      +    "evidence": {
      +      "items": {
      +        "$ref": "#/$defs/DexRow"
      +      },
      +      "title": "Evidence",
      +      "type": "array"
      +    },
      +    "matches": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Matches",
      +      "type": "array"
      +    },
      +    "offset_unit": {
      +      "title": "Offset Unit",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "target_field": {
      +      "enum": [
      +        "callee",
      +        "field_descriptor",
      +        "value",
      +        "type_descriptor"
      +      ],
      +      "title": "Target Field",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "dex_entry",
      +    "caller",
      +    "target_field",
      +    "matches",
      +    "evidence"
      +  ],
      +  "title": "ReferenceGroup",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / Source / properties / container_sha256
      Added value: +{
      +  "title": "Container Sha256",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / Source / properties / container_size_bytes
      Added value: +{
      +  "title": "Container Size Bytes",
      +  "type": "integer"
      +}
    • addedOutput schema / $defs / Source / properties / logical_header_offset
      Added value: +{
      +  "title": "Logical Header Offset",
      +  "type": "integer"
      +}
    • addedOutput schema / $defs / Source / properties / logical_size_bytes
      Added value: +{
      +  "title": "Logical Size Bytes",
      +  "type": "integer"
      +}
    • addedOutput schema / $defs / Source / properties / module
      Added value: +{
      +  "title": "Module",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / Source / properties / normalization
      Added value: +{
      +  "title": "Normalization",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / Source / properties / original_dex_version
      Added value: +{
      +  "title": "Original Dex Version",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / Source / properties / snapshot_entry
      Added value: +{
      +  "title": "Snapshot Entry",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / Source / properties / stored_size_bytes
      Added value: +{
      +  "title": "Stored Size Bytes",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / groups
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/ReferenceGroup"
      +  },
      +  "title": "Groups",
      +  "type": "array"
      +}
    • addedOutput schema / properties / limit_unit
      Added value: +{
      +  "const": "caller_groups",
      +  "title": "Limit Unit",
      +  "type": "string"
      +}
    • addedOutput schema / properties / module
      Added value: +{
      +  "title": "Module",
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_cursor
      Added value: +{
      +  "title": "Next Cursor",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / page_limited_by / const
      Removed value: -"response_bytes"
    • addedOutput schema / properties / page_limited_by / enum
      Added value: +[
      +  "response_bytes",
      +  "caller_groups"
      +]
    • addedOutput schema / properties / reference_format
      Added value: +{
      +  "const": "grouped",
      +  "title": "Reference Format",
      +  "type": "string"
      +}
    • addedOutput schema / properties / returned_sites
      Added value: +{
      +  "title": "Returned Sites",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / selected_modules
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "title": "Selected Modules",
      +  "type": "array"
      +}
    • addedOutput schema / properties / total_unit
      Added value: +{
      +  "const": "reference_sites",
      +  "title": "Total Unit",
      +  "type": "string"
      +}
    • addedOutput schema / properties / type_match
      Added value: +{
      +  "enum": [
      +    "exact",
      +    "substring"
      +  ],
      +  "title": "Type Match",
      +  "type": "string"
      +}
    • addedOutput schema / properties / type_relation
      Added value: +{
      +  "title": "Type Relation",
      +  "type": "string"
      +}
  2. Changed18 schema fields changedv0.2.4
    • removedOutput schema / $defs / DexRow / properties / instruction_offset / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / DexRow / properties / instruction_offset / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • removedOutput schema / $defs / DexRow / properties / offset_unit / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / DexRow / properties / offset_unit / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / DexRow / properties / target_dex_entry / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / DexRow / properties / target_dex_entry / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / GraphNode / properties / dex_entry / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / GraphNode / properties / dex_entry / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / $defs / GraphNode / properties / without_code / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / $defs / GraphNode / properties / without_code / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • addedOutput schema / $defs / QueryCache / properties / budget_bytes
      Added value: +{
      +  "title": "Budget Bytes",
      +  "type": "integer"
      +}
    • addedOutput schema / $defs / QueryCache / properties / stored_bytes
      Added value: +{
      +  "title": "Stored Bytes",
      +  "type": "integer"
      +}
    • removedOutput schema / properties / next_offset / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / next_offset / type
      Added value: +[
      +  "integer",
      +  "null"
      +]
    • addedOutput schema / properties / page_limited_by
      Added value: +{
      +  "const": "response_bytes",
      +  "title": "Page Limited By",
      +  "type": "string"
      +}
    • addedOutput schema / properties / response_byte_limit
      Added value: +{
      +  "title": "Response Byte Limit",
      +  "type": "integer"
      +}
    • removedOutput schema / properties / superclass / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / superclass / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  3. Addedv0.2.3

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only cover the safety profile (non-read-only, non-destructive, closed-world), and the description adds real behavioral facts beyond them: the session is a validated snapshot, not a resident engine, it is hash-bound and immutable, idle sessions expire, capacity eviction is possible, and invalidation requires a new session. These are exactly the lifecycle facts an agent needs to avoid stale-handle failures.

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?

Three short sentences, front-loaded with the action and result, followed by the reuse model and invalidations. No filler; each sentence carries a distinct fact.

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?

With an output schema present, the description needn't explain return values, and it covers the parts an agent would otherwise get wrong (expiry, eviction, invalidation). A small gap is that it never points to the related lifecycle siblings asc_query_dex_session / asc_close_dex_session, leaving the follow-up path implicit.

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 coverage is 100% and the single dex_paths parameter is already documented (ordered, max 64, server-bounded byte total). The description adds only implicit meaning, that ordering matters because the session is hash-bound; it contributes no format or precedence detail 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?

Specific verb plus resource plus result: 'Validate and snapshot DEX inputs once; return an immutable hash-bound session.' The DEX-inputs scope cleanly distinguishes it from the artifact-oriented sibling asc_open_artifact_session, and the returned handle (a session) is named.

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?

'Source file changes require opening a new session' gives an explicit trigger condition for calling this tool, and the first sentence implies call-once-then-reuse. What's missing is an explicit alternative (e.g. asc_open_artifact_session for non-DEX artifacts) or a pointer that this is a prerequisite for asc_query_dex_session.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.