# DexSQL (mcpb · dexsql.mcpb)

SQL for Android APK and DEX files: classes, methods, strings, references and smali.

- Trust score: 39/100 (low)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-06

## Components

- mcpb · `dexsql.mcpb`: 39/100 (this document), [markdown](https://verifymcp.io/servers/org-lsposed-dexsql/dexsql.md), [page](https://verifymcp.io/servers/org-lsposed-dexsql/dexsql)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/LSPosed/dexsql-release/releases/download/v0.1.1/dexsql.mcpb`
- Transport: `stdio`
- SHA-256: `b751989b902bc6fb75422aa5bc4384235ea02a29edb8d61a6f3ec55aeedf44f1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-06.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: the license (LicenseRef-DexSQL-Binary) isn't a recognized OSI-approved license.
  - Actively maintained (last published 18 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 40/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2053 tokens (~68/item across 30 items; 12 tools + 18 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 63/100
  - Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 85/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 46% of tool parameters carry a description.
  - Structured output schemas are declared (17% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the DexSQL MCP server?

DexSQL ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, b751989b902bc6fb75422aa5bc4384235ea02a29edb8d61a6f3ec55aeedf44f1; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/LSPosed/dexsql-release/releases/download/v0.1.1/dexsql.mcpb`
- SHA-256: `b751989b902bc6fb75422aa5bc4384235ea02a29edb8d61a6f3ec55aeedf44f1`

### Verify on macOS / Linux

```bash
echo "b751989b902bc6fb75422aa5bc4384235ea02a29edb8d61a6f3ec55aeedf44f1  dexsql.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\dexsql.mcpb).Hash -eq "b751989b902bc6fb75422aa5bc4384235ea02a29edb8d61a6f3ec55aeedf44f1"
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 39, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 38, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 37, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 36, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 35, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 34, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-23 (score 33, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-21 (score 32, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (12)

### `close_dataset` (~39 tokens)

Close a dataset and release its worker. New requests fail; already accepted requests may finish, with deadlines still enforced.

Input parameters:

- `dataset_id` (string, required)

### `decode` (~321 tokens)

Inspect a method or class. Exactly one method descriptor, method_idx (with file_id), or class descriptor is required. Classes default to paginated summaries; methods default to paginated smali. Follow next_offset for exact text continuation; context mode lists original line numbers for labels and catch directives. Query SQL tables for annotations and debug metadata.

Input parameters:

- `class` (string|null)
- `compact` (boolean): Opt in to one structuredContent representation (content is empty). Query columns become names and cells use null/string/number or [i|u|b|f, string]; SQL is omitted. Default false.
- `dataset_id` (string, required)
- `file_id` (integer|null)
- `max_bytes` (integer|null)
- `max_lines` (integer|null): Maximum lines in one text page, default 200, maximum 1000.
- `method` (string|null): Exact DEX descriptor. Supply exactly one of method, method_idx, or class.
- `method_idx` (integer|null): DEX-local method index; requires file_id.
- `method_limit` (integer|null): Methods per class page, default 20, maximum 50.
- `method_offset` (integer): Class method-list offset, ordered by method_idx.
- `mode`: Defaults to summary for a class, smali for a method. Context lists original label/catch lines.
- `offset` (integer): UTF-8 byte offset into one method's smali/context text; continue with next_offset.
- `timeout_ms` (integer|null)

Output parameters:

- `dataset_id` (string)
- `method_offset` (integer)
- `methods` (array)
- `mode`
- `next_method_offset` (integer|null)
- `total_methods` (integer)

### `describe_table` (~29 tokens)

Describe a built-in SQL table or view; no dataset is needed.

Input parameters:

- `name` (string, required)

### `get_manifest` (~186 tokens)

Read an APK Manifest as a summary (including paged permissions) or paged decoded XML. input_index refers to open_dataset.inputs; choose it when several archives are open. Does not require DEX or Java decompilation.

Input parameters:

- `compact` (boolean): Opt in to one structuredContent representation (content is empty). Query columns become names and cells use null/string/number or [i|u|b|f, string]; SQL is omitted. Default false.
- `dataset_id` (string, required)
- `input_index` (integer|null): Index in open_dataset.inputs; required when several archive inputs are present.
- `limit` (integer|null)
- `max_bytes` (integer|null)
- `mode`
- `offset` (integer): Permission-row offset in summary mode, UTF-8 byte offset in XML mode.
- `timeout_ms` (integer|null)

### `get_manifest_components` (~191 tokens)

Page Manifest components, names/descriptors, launcher intent filters, aliases and exported configuration. Exported state is manifest-derived and is not a claim of runtime accessibility. Includes explicit and SDK-dependent default states.

Input parameters:

- `compact` (boolean): Opt in to one structuredContent representation (content is empty). Query columns become names and cells use null/string/number or [i|u|b|f, string]; SQL is omitted. Default false.
- `dataset_id` (string, required)
- `input_index` (integer|null)
- `kind` (string|null): Optional activity, activity-alias, service, receiver, or provider filter.
- `limit` (integer|null)
- `max_bytes` (integer|null)
- `offset` (integer)
- `only_exported` (boolean): Filter by manifest-derived exported state; does not imply runtime accessibility.
- `timeout_ms` (integer|null)

### `list_datasets` (~31 tokens)

List open datasets and server quotas/usage. Counts include opening datasets and accepted work still holding a closed dataset.

### `list_resource_files` (~160 tokens)

Page archive entry names and sizes, optionally filtered by prefix (res/, assets/, lib/). Names identify entries for read_resource; files are never extracted.

Input parameters:

- `compact` (boolean): Opt in to one structuredContent representation (content is empty). Query columns become names and cells use null/string/number or [i|u|b|f, string]; SQL is omitted. Default false.
- `dataset_id` (string, required)
- `input_index` (integer|null)
- `limit` (integer|null)
- `max_bytes` (integer|null)
- `offset` (integer)
- `prefix` (string|null): Case-sensitive archive-entry prefix, for example res/layout/ or assets/.
- `timeout_ms` (integer|null)

### `list_tables` (~22 tokens)

List all built-in SQL tables and views; no dataset is needed.

### `open_dataset` (~91 tokens)

Open local DEX/APK/JAR/ZIP paths as an isolated reusable dataset. Resource-only archives are supported. Input/session quotas and operation deadlines apply. Close unused datasets to release memory.

Input parameters:

- `inputs` (array, required): Local DEX/APK/JAR/ZIP paths, resolved relative to the server working directory.
- `timeout_ms` (integer|null): Optional shorter operation deadline; cannot exceed the server's timeout.

### `query` (~292 tokens)

Run a read-only SQL batch with exact typed cells, byte/row budgets and per-statement next_offset. Use stable ORDER BY when paging; SQL is re-executed against the current lazy session definitions on each page; CREATE definitions persist until DROP, replacement or dataset close. Running timeout/cancellation closes only this dataset. Use resources/list to discover the documentation.

Input parameters:

- `compact` (boolean): Opt in to one structuredContent representation (content is empty). Query columns become names and cells use null/string/number or [i|u|b|f, string]; SQL is omitted. Default false.
- `dataset_id` (string, required)
- `limit` (integer|null): Returned rows per statement, default 200; use a deterministic ORDER BY when paging.
- `max_bytes` (integer|null): Optional lower serialized result-byte budget; rows are never silently clipped.
- `named_temp_queries` (array): Lazy named SELECT definitions, retained in this dataset with the same lifetime as TEMP tables.
- `offset` (integer): Rows to skip in each statement's result, default 0. offset + limit is at most 100000.
- `sql` (array, required): Read-only SQL statements. VIEW and TEMP definitions are lazy and persist in this dataset until DROP, redefinition, or close_dataset; results are not cached across calls.
- `timeout_ms` (integer|null)
- `timing` (boolean)

Output parameters:

- `dataset_id` (string)
- `diagnostics` (array)
- `statements`
- `timing`

### `query_resources` (~260 tokens)

Query resources.arsc by numeric ID, exact type/name, type, name substring or configuration. Returns matching configurations with raw values and named references; complex resources are flattened into ordered map items. Separate from DEX strings.

Input parameters:

- `compact` (boolean): Opt in to one structuredContent representation (content is empty). Query columns become names and cells use null/string/number or [i|u|b|f, string]; SQL is omitted. Default false.
- `configuration` (string|null): Exact qualifier string from a previous result. Empty string selects the default config.
- `contains` (string|null): Case-sensitive substring of the resource name.
- `dataset_id` (string, required)
- `input_index` (integer|null)
- `limit` (integer|null)
- `max_bytes` (integer|null)
- `name` (string|null): Exact type/name or package:type/name, for example string/app_name.
- `offset` (integer)
- `resource_id` (integer|null): Resource ID, for example 2130771968 (0x7f010000).
- `resource_type` (string|null): Resource type, for example string, layout, id, style, or array.
- `timeout_ms` (integer|null)

### `read_resource` (~191 tokens)

Read one exact APK archive entry in bounded pages. Binary Android XML is decoded; UTF-8 text is preserved; other bytes use hex. Follow next_offset in page (text) or the result (hex). The resource-entry size quota applies before decompression.

Input parameters:

- `compact` (boolean): Opt in to one structuredContent representation (content is empty). Query columns become names and cells use null/string/number or [i|u|b|f, string]; SQL is omitted. Default false.
- `dataset_id` (string, required)
- `format`
- `input_index` (integer|null)
- `max_bytes` (integer|null)
- `name` (string, required): Exact archive entry name. No files are extracted to the filesystem.
- `offset` (integer): Byte offset in decoded UTF-8 text, or original bytes when encoding is hex.
- `timeout_ms` (integer|null)

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/org-lsposed-dexsql/dexsql#diagnostics

## Score history

- 2026-11-06: 39
- 2026-11-05: 39
- 2026-11-04: 38
- 2026-11-03: 38
- 2026-11-02: 37
- 2026-11-01: 37
- 2026-10-31: 36
- 2026-10-30: 36
- 2026-10-29: 36
- 2026-10-28: 35
- 2026-10-27: 35
- 2026-10-26: 34
- 2026-10-25: 34
- 2026-10-24: 33
- 2026-10-23: 33
- 2026-10-22: 32
- 2026-10-21: 32
- 2026-10-20: 31
- 2026-10-19: 31
- 2026-10-18: 30

## Common questions

### What is the DexSQL MCP server?

DexSQL is an MCP server listed in the public MCP registry as org.lsposed/dexsql. SQL for Android APK and DEX files: classes, methods, strings, references and smali. This page covers its MCPB bundle (https://github.com/LSPosed/dexsql-release/releases/download/v0.1.1/dexsql.mcpb).

### Is the DexSQL MCP server safe to use?

DexSQL scores 39 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the DexSQL MCP server expose?

DexSQL exposes 12 tools: close_dataset, decode, describe_table, get_manifest, get_manifest_components, and 7 more. Their descriptions and schemas cost roughly 1,813 tokens of context every time the server is loaded.

### What licence is the DexSQL MCP server under?

DexSQL declares the LicenseRef-DexSQL-Binary licence, which is not on the OSI-approved list. Read the terms before using it at work, and note this covers the source only, not the cost of any service it calls.

### What did VerifyMCP test on the DexSQL MCP server?

VerifyMCP ran 12 checks on DexSQL, covering Source repository, Provenance, License, Maintenance and 8 more. 4 items could not be completed, a gap on our side rather than a finding about DexSQL: Malware scan, Known CVEs, Install scripts and Dependency health. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to an MCPB bundle, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Repository: https://github.com/LSPosed/dexsql-release
- Website: https://dexsql.lsposed.org/
- Changelog RSS feed: https://verifymcp.io/servers/org-lsposed-dexsql/dexsql.xml
- Changelog JSON feed: https://verifymcp.io/servers/org-lsposed-dexsql/dexsql/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/org-lsposed-dexsql/dexsql.json
- HTML version of this page: https://verifymcp.io/servers/org-lsposed-dexsql/dexsql
