android-sqlite-inspector
# Android SQLite Inspector
MCP server that inspects and queries SQLite databases on Android devices via ADB.
## Prerequisites
- Node.js 18+
- ADB installed and in PATH
- A **debuggable** Android app (debug builds)
## Installation
```bash
npm install
npm run build
```
## Configuration
Set via environment variables:
| Variable | Description | Default |
|----------|-------------|---------|
| `ANDROID_PACKAGE` | App package name | `com.hortusys` |
| `ANDROID_DEVICE` | ADB device serial (for multiple devices) | _(auto-detect)_ |
| `ADB_PATH` | Custom path to ADB binary | `adb` |
## Claude Code Setup
Add to `~/.claude/settings.json`:
```json
{
"mcpServers": {
"android-sqlite-inspector": {
"command": "node",
"args": ["/Users/andromeda/StudioProjects/android-sqlite-inspector/dist/index.js"],
"env": {
"ANDROID_PACKAGE": "com.hortusys"
}
}
}
}
```
## Available Tools
| Tool | Description |
|------|-------------|
| `list_databases` | List all `.db` files in the app's databases directory |
| `list_tables` | List all tables in a database |
| `describe_table` | Show column schema for a table |
| `query` | Execute a SELECT query (returns JSON) |
| `execute` | Execute INSERT/UPDATE/DELETE (pushes changes back to device) |
## How It Works
1. Each read operation pulls a fresh copy of the database from the device via `adb shell run-as <package> cat databases/<db>`
2. Queries run locally using `better-sqlite3`
3. Write operations (`execute`) pull the db, modify locally, then push back via ADB
TDQS
Scored across 12 tools
Most tools target distinct actions and resources, but the query variants (query, multi_query, query_paginated, export) overlap in purpose and could be confused if descriptions are not read carefully. The read-only vs. write distinction between query and execute is clear, and schema_diff/room_info are well-separated from the rest.
The list_* tools follow a clear, consistent pattern, and describe_table, schema_diff, and export are also descriptive. However, room_info breaks the verb-noun pattern, and the query variants mix styles (query, multi_query, query_paginated) though they remain readable.
Twelve tools is well-scoped for an Android SQLite inspector, covering discovery, schema inspection, querying, and modification without unnecessary bloat. Each tool has a meaningful role in the workflow.
The tool surface covers the full inspection lifecycle: device discovery, package/database/table enumeration, schema details, read/write operations, pagination, batch queries, Room metadata, schema diffing, and export. No obvious dead ends or critical missing operations are apparent for the stated purpose.