Skip to main content
Glama
shapeyourphone

shapeyourphone

by rachitkj

privacy

Read-only

Identify which Android apps can access location, camera, microphone, contacts, accessibility services, or device admin rights so you can review and adjust risky permissions.

Instructions

Which apps can use location, camera, mic, contacts; accessibility services, device admins.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "privacy"
  }
}

Input Schema

NameRequiredDescriptionDefault
deviceNoadb serial, only needed when several phones are connected
include_systemNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the description is not obligated to restate it. The description does add useful scope detail by naming the sensitive capability classes inspected, including privileged ones like accessibility services and device admins. It says nothing, however, about whether results are per-device or aggregated, whether system apps appear, or how the data is shaped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, with no filler sentences, but the single semicolon-joined fragment is a list of nouns rather than a front-loaded statement of action. Brevity here comes at the cost of specification rather than from trimming redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should carry the burden of explaining what comes back — per-app grant lists, special-access enumerations, or something else — and it does not. Combined with the undocumented include_system parameter and the absence of routing guidance versus change_permission, the definition leaves too much for the agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: 'device' is documented in the schema, but 'include_system' has no description anywhere. The description does not compensate — it never mentions the include_system toggle or what the default behavior is, so an agent cannot tell whether system apps are reported by default or only when the flag is set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource categories it reports (location, camera, mic, contacts, accessibility services, device admins), which implies a per-app permission audit, but it opens with a bare noun phrase rather than a verb and never states that it lists or reports anything. It is distinguishable in spirit from mutating siblings like change_permission, but that distinction is left implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite (e.g. a connected device), and no pointer to the alternative tool an agent should call when it wants to change a permission rather than inspect it. An agent must infer from the sibling name change_permission that 'privacy' is the read side of the pair.

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