drozer-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DROZER_BIN | No | Path to the drozer console binary. | drozer |
| DROZER_LOG | No | Log level: DEBUG/INFO/WARNING/ERROR. | INFO |
| DROZER_SERVER | No | Override the agent host:port. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| drozer_connectA | Open a Drozer console session against the connected Android device. Requires the Drozer agent APK to be running on the device and ADB port
forwarding in place: Subsequent tool calls will reuse this session. Call |
| drozer_disconnectA | Close the Drozer console session if open. |
| list_packagesA | List installed packages on the device. Args:
filter: Optional substring filter — Drozer's |
| package_attack_surfaceA | Show the high-level attack surface of one package. Returns counts of exported activities/receivers/providers/services plus
a Args:
package: Fully qualified package name, e.g. |
| list_activitiesA | List activities of a package and their required permissions. Args:
package: Target package name.
exported_only: If True (default), pass Drozer's |
| list_servicesC | List exported services of a package and their required permissions. |
| list_receiversC | List exported broadcast receivers of a package. |
| list_providersA | List content providers of a package with their permissions and authorities. Each entry includes |
| find_provider_urisA | Find content:// URIs exposed by installed apps (Drozer Args: package: Optional package to limit the search; omit to scan all. |
| query_providerA | Query a content provider URI. Args:
uri: The Returns the raw provider response. Useful in concert with the injection scanner — once you find an injectable URI, this tool exercises it. |
| read_providerA | Read a file-backed content provider URI ( Used to test for unauthorized file disclosure or path-traversal in FileProvider implementations. Returns the file body as text. |
| start_activityA | Launch an activity via Either Args:
component: |
| send_broadcastC | Send a broadcast intent via At least one of |
| start_serviceB | Start a service via Args:
component: |
| scan_provider_injectionA | Run Args: package: Optional package to scope the scan; omit to scan all. Returns a parsed |
| scan_provider_traversalC | Run |
| scan_activity_browsableC | Run |
| shell_execA | Execute a shell command on the device via Useful for follow-up verification (read a file the provider exposed, check that a broadcast actually fired, dump logcat, etc.). Beware large outputs — the shell command runs under the agent's UID, which on most devices is the same as the system_user. |
| drozer_run_rawA | Run any Drozer command verbatim. Escape hatch for modules not yet wrapped. Example: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Each tool targets a distinct action (connect, disconnect, list packages, list activities, query provider, scan for injection, etc.) with clear boundaries. Even similar tools like query_provider and read_provider are differentiated by their use case.
All tool names use consistent snake_case with a verb_noun pattern. The drozer_ prefix for connection and raw commands is a consistent sub-pattern, and there is no mixing of styles.
19 tools is appropriate for the Android security assessment domain, covering connection management, enumeration, scanning, and exploitation without being excessive. Each tool serves a clear purpose.
The tool set covers the core Drozer workflow: connect, enumerate packages and components, query providers, scan for injection/traversal, and send intents. Some advanced modules are missing but can be accessed via drozer_run_raw, and the set is well-scoped for practical use.