Skip to main content
Glama

BatterySnap

Model battery summary

model_summary
Read-onlyIdempotent

Aggregate battery metrics across ALL devices of a given brand+model. Returns mean / median / p25 / p75 / min / max for: temperature (C), battery level (%), discharge speed (hours per 100%%), AC / USB / wireless charge speed (hours per 100%%), and awake ratio. Use this to characterize how a model behaves in the field, or to compare a single device against its model average.

Also includes:

  • raw_model_code: representative raw Android Build.MODEL identifier (smallest among devices grouped under this street name), or null if none recorded.

  • url: public BatterySnap web page for the model (https://www.battery-snap.com/brands//models/<raw_model_code>); null when raw_model_code is null.

Pass country and / or continent to restrict to devices of that region; the call fails when fewer than 5 devices of the model remain.

Input Schema

NameRequiredDescriptionDefault
brandYesLowercase Android brand identifier (e.g. 'samsung').
modelYesModel name, matched against resolved street name (e.g. 'Galaxy S23') or raw Build.MODEL (e.g. 'SM-S911B').
countryNoOptional ISO 3166 alpha-2 country code (e.g. 'FR', 'IN', 'US'), case-insensitive. Keeps only devices whose time zone belongs to that country. The region comes from the phone's time-zone setting, not GPS / IP.
continentNoOptional continent, case-insensitive: 'Africa', 'Antarctica', 'Asia', 'Europe', 'North America', 'Oceania' or 'South America'. Keeps only devices whose time zone lies there. Combine with `country` for an intersection.

Output Schema

NameRequiredDescriptionDefault
urlNoPublic BatterySnap web page for this model. Built from `raw_model_code`; null when `raw_model_code` is null. Locale-agnostic.
brandNoLowercase Android brand identifier.
modelNoResolved model name.
regionNoPresent only when a region filter was applied, e.g. 'country:FR' or 'continent:Asia'.
awake_ratioNo
device_countNoDistinct devices of this model that reported snapshots.
temperature_cNo
raw_model_codeNoRepresentative raw Android Build.MODEL identifier (e.g. 'SM-S911B') — the lexicographically smallest model code among devices grouped under this street name. Null when no device has a non-empty model code.
snapshot_countNoSum of snapshots across all devices of this model.
ac_charge_hoursNo
discharge_hoursNo
usb_charge_hoursNo
battery_level_pctNo
wireless_charge_hoursNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / continent
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional continent, case-insensitive: 'Africa', 'Antarctica', 'Asia', 'Europe', 'North America', 'Oceania' or 'South America'. Keeps only devices whose time zone lies there. Combine with `country` for an intersection."
      +}
    • addedInput schema / properties / country
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional ISO 3166 alpha-2 country code (e.g. 'FR', 'IN', 'US'), case-insensitive. Keeps only devices whose time zone belongs to that country. The region comes from the phone's time-zone setting, not GPS / IP."
      +}
    • addedOutput schema / properties / region
      Added value: +{
      +  "description": "Present only when a region filter was applied, e.g. 'country:FR' or 'continent:Asia'.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses the minimum-sample failure mode, how region filtering is derived (time-zone setting, not GPS/IP), the exact aggregate statistics returned, and the null semantics for raw_model_code and url. That is precisely the context annotations cannot carry.

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

Conciseness4/5

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

Front-loads the purpose and stats list, then tapers into derived-field and filtering notes with a compact bullet structure. Minor waste: the escaped '%%' artifact, and a bullet explaining return fields that the output schema already covers.

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

Completeness5/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 still usefully explains the non-obvious derived fields and their null conditions, plus the sample-size gate that governs whether the call succeeds. An agent has everything needed to decide and invoke correctly.

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

Parameters4/5

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

Schema coverage is 100%, so country/continent are already documented, but the description adds the failure threshold tied to filtering ('fewer than 5 devices ... remain') and how the two filters combine as an intersection. It stops short of adding anything on brand/model matching beyond what the schema says.

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?

States a specific verb and resource with explicit scope: 'Aggregate battery metrics across ALL devices of a given brand+model.' The ALL-devices scoping and the comparison framing ('compare a single device against its model average') make it clearly distinct from device_summary without the agent needing to open either schema.

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?

Gives concrete use cases ('characterize how a model behaves in the field', 'compare a single device against its model average') and a hard precondition ('the call fails when fewer than 5 devices of the model remain'). It never names a sibling tool as the alternative, so routing is implied rather than explicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources