BatterySnap MCP server
Ask AI assistants about Android battery analytics
BatterySnap exposes a Model Context Protocol server so any MCP-compatible AI assistant can query brands, models, and per-device battery statistics on demand. No authentication required.
http://mcp.battery-snap.com/mcp
Transport
streamable-http
Install in your client
Edit claude_desktop_config.json (Settings → Developer → Edit Config) and add:
{
"mcpServers": {
"batterysnap": {
"type": "http",
"url": "http://mcp.battery-snap.com/mcp"
}
}
}
For older versions without native HTTP transport, use the mcp-remote bridge:
{
"mcpServers": {
"batterysnap": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://mcp.battery-snap.com/mcp"]
}
}
}
Run once in your terminal:
claude mcp add --transport http batterysnap http://mcp.battery-snap.com/mcp
Create ~/.cursor/mcp.json (or edit it) with:
{
"mcpServers": {
"batterysnap": {
"url": "http://mcp.battery-snap.com/mcp"
}
}
}
In librechat.yaml, add under mcpServers:
mcpServers:
batterysnap:
type: streamable-http
url: http://mcp.battery-snap.com/mcp
Add to .vscode/mcp.json in your workspace, or your user settings:
{
"servers": {
"batterysnap": {
"type": "http",
"url": "http://mcp.battery-snap.com/mcp"
}
}
}
Any MCP host supporting the streamable-http transport can connect by pointing it at http://mcp.battery-snap.com/mcp. Discovery metadata is served at /.well-known/mcp.json.
Available tools
brands()List every device brand with a battery-statistics record, along with model and device counts, plus a url to the brand page on BatterySnap.
models(brand)List the device models recorded for the given brand, with device count, average temperature, Android API range, a representative raw Build.MODEL identifier (raw_model_code) and a url to the model page on BatterySnap (null when no raw model code is available).
devices(brand, model)List individual devices of the given brand and model with per-device aggregates: activity window, battery level, temperature range, charge / discharge speed, awake ratio, Android API level and a url to the device-history page on BatterySnap.
device_summary(device_uid)Aggregated battery metrics for one specific device: average / min / max temperature, average battery level, mean charge time per power source (AC, USB, wireless) and mean discharge time over recent (~2 weeks) and long (~2 months) windows, plus awake ratio, Android info and a url to the device-history page on BatterySnap.
model_summary(brand, model)Distribution of battery metrics across all devices of a given brand + model: mean, median, p25, p75, min and max for temperature, battery level, discharge speed, AC / USB / wireless charge speed and awake ratio. Also returns a representative raw_model_code and a url to the model page on BatterySnap (null when no raw model code is available).
fleet_summary(brand?)Same distribution stats as model_summary, but across the entire fleet — or a single brand when brand is provided. Useful as a baseline to compare a device or model against.
fleet_totals()Live fleet-wide counters: total devices, models, snapshots, sessions, snapshot-ingest rate (snapshots/sec) and timing of the latest insert batch. Use it to answer how big the dataset is and how fast it grows.
top_devices_by_uptime(brand?, model?, limit?)Devices ranked by the longest single uptime ever recorded between reboots. Optional brand and model filters. Returns a small list of device_uids (with a url to each device-history page on BatterySnap) you can pipe into device_summary.
top_devices_by_live_uptime(brand?, model?, limit?)Same ranking as top_devices_by_uptime, but restricted to devices whose uptime has not yet been broken by a reboot — they are still climbing live. Each entry also includes a url to its device-history page.
The brands, models and devices tools also accept an optional fields argument — pass a whitelist of attribute names to keep responses compact.