TeslaMate MCP Server
Provides tools for querying Tesla vehicle data (state, driving, charging, efficiency, savings, etc.) from TeslaMate's PostgreSQL database.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TeslaMate MCP Serverwhat's my car's current battery level?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TeslaMate MCP 服务器
English | 中文
基于 TeslaMate PostgreSQL 数据库的 MCP 服务器。仅读取数据,不包含车辆控制功能。支持 Claude Code、OpenClaw 及所有 MCP 兼容客户端。
上游项目: 本项目 fork 自 loddev/mcp-teslamate-fleet,进行了大幅定制化改造。
功能特性
38 个工具,分为七大类 — 多车辆支持,所有工具都支持可选的 car_id 参数
多车辆支持: 所有工具都支持可选的 car_id 参数来查询特定车辆。使用 tesla_cars() 列出所有已注册的车辆。
🚗 车辆状态
工具 | 说明 |
| 服务端版本与诊断信息(版本号、工具数、DB 连通状态、Python/fastmcp 版本) |
| 列出 TeslaMate 中已注册的所有车辆 |
| 当前车辆状态 — 电量、续航、位置、空调、里程 |
| 实时轮询状态(GPS、电池、温度、TPMS、充电) |
| 胎压监测,异常报警 |
| 近期胎压历史记录 |
📊 行程与驾驶
工具 | 说明 |
| 最近行程列表,支持 date_from/date_to 筛选 |
| 驾驶评分(加速/刹车/速度习惯) |
| 按类别筛选行程(通勤/购物/休闲/长途/其他) |
| 各类别行程数量统计 |
| 最长行程排名 |
| 最常访问目的地 |
| 位置历史 — 各地点停留时长 |
🔋 电池与充电
工具 | 说明 |
| 充电历史记录(支持 date_from/date_to) |
| 详细充电记录(含地点和费用明细) |
| 各充电地点的充电模式(支持日期过滤) |
| 电池衰减趋势(100% 电量续航变化) |
| 驻车掉电分析(过夜电池损耗) |
⚡ 能耗分析
工具 | 说明 |
| 能耗趋势(Wh/km 每周平均) |
| 不同温度下的能耗曲线 |
| 按真实天气(晴/雨/雪/雾/大风)分组的能耗对比 · 需和风天气 |
| 月度驾驶报告(含上月对比) |
| 月度汇总表(里程/kWh/费用/能耗) |
🌦️ 天气增强(需和风天气 API)
工具 | 说明 |
| 车辆当前位置的实时天气(温度/体感/湿度/风力/降水/能见度/状况) |
| 按真实天气分组的能效分析(回填历史天气,展示相对晴天偏差) |
💡 天气功能需配置
QWEATHER_API_KEY+QWEATHER_API_HOST(需自行申请,见下方配置)。未配置时这两个工具返回友好提示,其余功能不受影响。此外,配置后tesla_trip_cost会按目的地实时天气自动修正电费估算(雨 +15% / 雪 +30% / 雾 +10% / 大风 +12%)。
💰 省钱 & 环保
工具 | 说明 |
| 油费节省 scorecard |
| 估算到某目的地的电费(kWh/费用/续航检查) |
| 相比燃油车的节省 + CO₂ 减排 + 种树当量 |
🏆 成就 & 趣味
工具 | 说明 |
| 检测驾驶成就(极限续航幸存者/午夜幽灵/冰雪勇士) |
| 旅行叙事时间线(用于写游记/Vlog 脚本) |
| 周末盲盒目的地推荐(去过一次的独特记忆) |
| 精美 Markdown 月报(含 Emoji) |
| 车辆人设状态(活跃度/疲劳度/极端情况/健康度) |
| 单次充电详细物理参数 |
| 驾驶者档案 — 等级、成就、彩蛋 |
| 今日随机驾驶挑战任务 |
| 单次充电最长行驶距离 |
🔧 系统与历史
工具 | 说明 |
| 车辆状态转换历史(在线/睡眠/离线) |
| 固件版本历史 |
Related MCP server: Tessie MCP Extension
快速开始
部署到群晖 NAS(Docker)
本服务设计为与现有 TeslaMate 一起运行。
1. 追加到 TeslaMate 的 docker-compose.yml:
所有配置通过环境变量完成。以下是完整参考配置,包含所有可用选项:
services:
teslamate-mcp:
image: ghcr.io/6547709/teslamate-mcp:latest
container_name: teslamate-mcp
restart: always
ports:
- "30002:8080" # 主机端口:容器端口
environment:
# ── TeslaMate 数据库(必填)─────────────────────────
- TESLAMATE_DB_HOST=database # PostgreSQL 主机(同一 Docker 网络下用 database)
- TESLAMATE_DB_PORT=5432 # PostgreSQL 端口
- TESLAMATE_DB_USER=teslamate # 数据库用户名
- TESLAMATE_DB_PASS=secret # 数据库密码 ← 请修改
- TESLAMATE_DB_NAME=teslamate # 数据库名称
# ── 服务模式 ───────────────────────────────────────
- MCP_TRANSPORT=streamable-http # stdio=命令行模式,streamable-http=容器模式
- HTTP_HOST=0.0.0.0 # 绑定地址(⚠️ 暴露公网前请加反向代理认证)
- HTTP_PORT=8080 # 容器内部端口
# - MCP_DEBUG=false # 设为 true 开启详细日志
# ── 数据库连接池(v1.2.5 新增)────────────────────────
# - TESLA_DB_MAXCONN=8 # 连接池上限(默认 8,按并发调整)
# - TESLA_DB_MINCONN=2 # 连接池下限(默认 2)
# - TESLA_DB_POOL_RETRY_WINDOW_SEC=2.0 # 池耗尽重试窗口
# - TESLA_DB_POOL_RETRY_SLEEP_SEC=0.05 # 重试步长
# ── 时区 ───────────────────────────────────────────
- TIMEZONE=Asia/Shanghai # IANA 时区名(如 Asia/Shanghai、America/Los_Angeles)
# ── 单位与货币 ─────────────────────────────────────
- USE_METRIC_UNITS=true # true=公里/摄氏度/¥/Wh/km,false=英里/华氏度/$/Wh/mi
- TESLA_ELECTRICITY_RATE_RMB=0.6 # 电费(元/度)
# - TESLA_ELECTRICITY_RATE_USD=0.12 # 电费(美元/度,fallback)
# - TESLA_GAS_PRICE=3.50 # 油价(美元/加仑,用于节省计算)
# - TESLA_GAS_MPG=28 # 燃油车油耗(MPG,用于节省计算)
# ── 车辆参数(多车配置)────────────────────────────
# JSON 格式:key = TeslaMate car_id,value = {kwh, range_km}
# 所有工具均支持 car_id 参数来查询指定车辆;设置后将覆盖单车默认值
- TESLA_CAR_PARAMS={"1":{"kwh":78.4,"range_km":675},"2":{"kwh":82,"range_km":751}}
# ├─ car_id=1:Model 3P 国产高性能版(改款二 / 2021.12):78.4 kWh, 675 km CLTC
# └─ car_id=2:Model YL 长续航六座版(2025.08):82.0 kWh, 751 km CLTC
# 如只跑单车,下面的 TESLA_BATTERY_KWH + TESLA_BATTERY_RANGE_KM 仍生效
# - TESLA_BATTERY_KWH=78.4 # 可用电池容量(kWh,单车回退)
# - TESLA_BATTERY_RANGE_KM=675 # 满电续航(km,单车回退)
- TESLA_CAR_ID=1 # 默认车辆 ID(查看 TeslaMate 仪表盘)
# ── 胎压阈值(可选)────────────────────────────────
# - TESLA_TPMS_MIN_THRESHOLD=2.5 # 低压警告阈值(bar)
# - TESLA_TPMS_MAX_THRESHOLD=3.5 # 高压警告阈值(bar)
# ── 吸血鬼 / 露营阈值(可选)─────────────────────────
# - TESLA_VAMPIRE_MIN_HOURS=8 # 最短停放判定时长(小时)
# - TESLA_VAMPIRE_MAX_HOURS=168 # 最长停放判定时长(小时)
# - TESLA_VAMPIRE_WEATHER_MAX=5 # 附天气查询的掉电事件数(v1.2.3+)
# - TESLA_CAMPING_KWH_PER_HOUR=0.8 # 露营模式阈值(kWh/h,参考 75 kWh)
# ── 性能 / 缓存(v1.2.5 新增)────────────────────────
# - TESLA_LIMIT_NARRATIVE=500 # narrative 最多返回行程数
# - TESLA_ROUTINE_CACHE_MAX=256 # 常规地址缓存上限
# - TESLA_GEOCODE_CACHE_MAX=1000 # 持久化地理编码缓存条目上限
# - TESLA_GEOCODE_CACHE_DEBOUNCE_SEC=1.0 # 写盘去抖窗口(v1.2.5)
# - TESLA_MAX_LOOKBACK_DAYS=3650 # 全工具统一最大回溯天数
# ── 第三方 API(可选)⚠️ 占位符,必须替换成自己申请的!────
# 高德地图 / AMAP:提升中文地址地理编码精度(tesla_trip_cost)
# 申请:https://lbs.amap.com → 创建应用 → 选「Web服务」类型 Key
# - AMAP_API_KEY=xxx*** # 你的高德 Web服务 Key
# - TESLA_AMAP_TIMEOUT=8 # 可选,请求超时(秒)
# 和风天气 / QWeather:启用 tesla_weather、tesla_efficiency_by_weather、行程成本天气修正
# 申请:https://dev.qweather.com → 控制台 → 创建项目,获取 API Key + 账号专属 Host
# 注意:必须用账号专属 Host(形如 xxxx.re.qweatherapi.com),旧公共域名返回 403
# - QWEATHER_API_KEY=xxx*** # 你的和风天气 API Key
# - QWEATHER_API_HOST=xxx***.re.qweatherapi.com # 你的专属 Host
# - TESLA_QWEATHER_TIMEOUT=8 # 可选,请求超时(秒)
# - TESLA_WEATHER_SAMPLE_MAX=60 # 可选,天气能效分析采样行程数
# ── 查询限制(可选,设 -1 为不限制)────────────────
# - TESLA_LIMIT_DRIVES=500 # tesla_drives 最大返回条数
# - TESLA_LIMIT_CHARGING=500 # tesla_charging_history 最大返回条数
# - TESLA_LIMIT_TRIP_CATEGORIES=500 # tesla_trip_categories 分析行程数
# - TESLA_LIMIT_BATTERY_HEALTH=60 # tesla_battery_health 月度快照数
# - TESLA_LIMIT_BATTERY_SAMPLES=30 # tesla_battery_health 回退采样数
# - TESLA_LIMIT_LOCATION_HISTORY=50 # tesla_location_history 位置聚类数
# - TESLA_LIMIT_STATE_HISTORY=500 # tesla_state_history 状态转换数
# - TESLA_LIMIT_SOFTWARE_UPDATES=30 # tesla_software_updates 软件更新数
# - TESLA_LIMIT_CHARGING_BY_LOCATION=50 # tesla_charging_by_location 充电地点数
# - TESLA_LIMIT_TPMS_HISTORY=60 # tesla_tpms_history 胎压历史数
# - TESLA_LIMIT_VAMPIRE_DRAIN=50 # tesla_vampire_drain 掉电事件数
depends_on:
- database💡 注释掉的变量(
#)显示的是默认值,只需取消注释并修改你需要的即可。
🔑 第三方 API(可选)
以下功能需要你自行申请 API Key / Host。配置文件中的 xxx*** 均为占位符,必须替换成你自己的。不配置则对应功能自动关闭,其余功能不受影响。
服务 | 启用的功能 | 需要的环境变量 | 申请地址 |
高德地图 / AMAP | 中文地址地理编码( |
| lbs.amap.com → 创建应用 → 选「Web服务」类型 Key |
和风天气 / QWeather |
|
| dev.qweather.com → 控制台 → 创建项目 |
⚠️ 和风天气特别注意:自 2024 年起必须使用账号专属 API Host(形如
xxxx.re.qweatherapi.com);旧版公共域名devapi/api.qweather.com现已返回403 Invalid Host。Host 可带或不带协议头 / 末尾斜杠,程序会自动归一化。
车型参考(中国):
年份 | 车型 | 版本 | 电池(kWh) | 续航NEDC(km) | 电池类型 | 备注 |
2014-2016 | Model S | 早期进口系列(60/75/85/90) | 60-90 | 280-440 | 早期 18650 三元锂 | |
2016-2018 | Model S/X | 100D 系列(进口) | 100.0 | 450-510 | 松下 18650 三元锂 | |
2019.02 | Model 3 | 进口高性能/长续后驱版 | 75.0 | 490 | 松下 2170 三元锂 | |
2019.05 | Model 3 | 进口标准续航升级版 | 52.0 | 380 | 松下 2170 三元锂 | |
2019.12 | Model 3 | 国产标续版(首批) | 52.5 | 445 | 宁德时代 LFP/三元锂 | |
2020.04 | Model 3 | 国产长续航后驱版 | 75.0 | 668 | LG 三元锂 |
年份 | 车型 | 版本 | 电池(kWh) | 续航CLTC(km) | 电池类型 | 备注 |
2021.01 | Model Y | 国产长续航/高性能版 | 76.8/78.4 | 594-640 | LG 三元锂 | |
2021.02 | Model 3 | 国产高性能版(P版)改款一 | 76.8 | 605 | LG M50 (早期) | |
2021.07 | Model Y | 国产后轮驱动版(标续) | 60.0 | 525 | 宁德时代 LFP | |
2021.11 | Model 3 | 国产后轮驱动版(60度) | 60.0 | 556 | 宁德时代 LFP | |
2021.12 | Model 3 | 国产高性能版(P版)改款二 | 78.4 | 675 | LG 5L (新款) | AMD Ryzen芯片 |
2023.01 | Model S/X | 新款(Plaid/双电机) | 100.0 | 664-715 | 三元锂(18650 改进版) | |
2023.09 | Model 3 | 焕新版 后驱/长续航 | 60/78.4 | 606-713 | LFP/三元锂 | |
2024.04 | Model 3 | 焕新版 高性能版(P版) | 78.4 | 623 | LG 三元锂 | |
2024.10 | Model Y | 国产标续航/长续航(微改) | 60/78.4 | 554-688 | LG 三元锂 | 辅助驾驶硬件 HW4.0 |
2025.01 | Model 3+ | 焕新版超长续航后驱版 | 78.4 | 713 | 三元锂 (针对能效优化) | |
2025.05 | Model Y | 焕新版 后驱/长续航 | 60/78.4 | 593-750 | 三元锂 (针对能效优化) | |
2025.08 | Model YL | 长续航六座版 | 82.0 | 751 | 三元锂 | 首款6座 |
2026.03 | Model Y | 焕新版 后驱/长续航 | 60/78.4 | 593-750 | LG 三元锂 | 内饰黑化、屏幕16寸 |
2. 启动容器:
docker-compose up -d teslamate-mcp3. 验证运行状态:
docker logs teslamate-mcp看到以下输出表示成功:
Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)配置 MCP 客户端
OpenClaw
在 OpenClaw 设置中添加新的 MCP 服务器:
{
"mcpServers": {
"teslamate": {
"url": "http://192.168.10.200:30002/mcp"
}
}
}Claude Code(~/.claude/settings.json 或项目 .mcp.json)
{
"mcpServers": {
"tesla": {
"url": "http://192.168.10.200:30002/mcp"
}
}
}注意: 如果 Claude Code 运行在群晖以外的设备上,请确保 30002 端口网络可达。
工作原理
单文件 Python 服务器,使用 FastMCP 框架。直接从 TeslaMate PostgreSQL 数据库读取所有数据(可选接入高德地图 / 和风天气 API 做地理编码与天气增强):
┌─────────────┐ ┌──────────────┐ ┌───────────┐ ┌────────────┐
│ TeslaMate │────▶│ Postgres │────▶│ tesla.py │────▶│ MCP 客户端 │
│ (数据记录) │ │ (TeslaMate) │ │(HTTP/:8080)│ │(OpenClaw, │
└─────────────┘ └──────────────┘ └───────────┘ │Claude Code) │
└────────────┘核心机制:
所有数据直接来自 TeslaMate PostgreSQL 数据库,无需 Tesla Owner API
无需单独注册 Tesla 开发者账号或配置任何 API Token
GitHub Actions 自动构建
每次打标签自动构建并推送 Docker 镜像到 GitHub Container Registry:
# 打标签发布
git tag v1.2.4
git push origin v1.2.4镜像地址:
Tag | 用途 |
| 始终指向最新发布(当前 v1.2.4) |
| 锁定当前版本 |
| 跟随 1.2.x 小版本 |
| 不可变 commit 引用 |
双架构:linux/amd64 + linux/arm64(Docker buildx)。
注意事项
单车: 查询使用固定的
car_id(多车辆用户需配置不同 ID)默认英制单位: 设置
USE_METRIC_UNITS=true切换为公制能耗估算: kWh 数据由续航差值估算(准确度约 90-95%)
致谢
本项目 fork 自 @lodordev 的 loddev/mcp-teslamate-fleet,感谢原作者提供了 Tesla MCP 整合的基础架构。本 fork 在此基础上移除了车辆控制功能(提升安全性)、所有数据仅从 TeslaMate 数据库读取(无需任何 Tesla API Token)、以及新增增强分析功能。
开源许可
MIT
Available Tools
38 toolscalculate_eco_savings_vs_icevCalculate Eco Savings Vs IcevB
Calculate eco savings and carbon reduction compared to an ICEV (燃油汽车).
Compares Tesla's actual electricity costs against a hypothetical ICEV consuming the same distance in fuel, plus CO2 savings and tree equivalents.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| icev_mpg | No | ICEV fuel consumption in L/100km (default: 8.0) | |
| gas_price | No | Gas price per litre in RMB (default: 8.0) | |
| electricity_price | No | Electricity cost per kWh in RMB (default: 0.5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It usefully discloses the computation model (same-distance ICEV fuel vs. actual electricity cost) but says nothing about read-only nature, data source, permissions, or that it is a derived estimate rather than recorded data. Adequate but with clear gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the verb and resource, and the second sentence clarifies the comparison model. No filler, though the parenthetical Chinese gloss adds little for an English-language agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and schema coverage is full, so return values and parameter formats need not be explained. What remains missing is usage context (when this beats tesla_savings) and the nature/source of the calculation, leaving the definition adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters (days, car_id, icev_mpg, gas_price, electricity_price) with defaults and units. The description adds the conceptual framing of the ICEV comparison but no syntax or semantics beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific computation: eco savings and CO2 reduction comparing Tesla electricity costs against a hypothetical ICEV, including tree equivalents. An agent can tell it apart from generic siblings like tesla_savings or tesla_trip_cost, though it never explicitly names which sibling to prefer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no routing against the nearby tesla_savings / tesla_trip_cost / tesla_efficiency tools that overlap conceptually. The agent must infer the situation from siblings alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_daily_questCheck Daily QuestB
Check today's daily driving quest and progress.
Uses a deterministic hash of the current Beijing date to select one quest from the pool each day. Returns status: 未开始/进行中/已完成.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden. It helpfully discloses the deterministic hash-of-date selection mechanism and the status enum values, which is real behavioral context. However, it doesn't state whether it's read-only, whether it triggers any mutation (e.g. marking a quest started), or whether it consumes a daily check-in.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences. The mechanism detail is directly useful for understanding why the result is stable within a day.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be explained. The deterministic-selection rule is the key non-obvious fact and is included. Missing side effects and sibling differentiation keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents car_id, including the default resolution behavior (TESLA_CAR_ID env or first car). The description adds nothing about the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: checks today's daily driving quest and its progress. The mechanism sentence clarifies the resource further. It doesn't differentiate from the closest sibling (check_driving_achievements), which is a conceptually adjacent gamification tool, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternatives are given. An agent cannot tell whether this overlaps with check_driving_achievements or how quests differ from achievements. No prerequisites or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_driving_achievementsCheck Driving AchievementsC
Scan recent drives and charging sessions to check for driving achievements.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-scan over recent drives, but says nothing about what an 'achievement' is, whether checking has side effects (e.g. persisting/unlocking badges), or any auth/rate-limit constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the action and scope with no wasted words. It is efficient, though its brevity borders on under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the schema fully documents inputs. Still, with no annotations and an undefined 'achievements' concept, the definition leaves the agent without enough context on the tool's behavior and scope to be fully confident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (days, car_id) are fully documented in the schema, including defaults and the env fallback for car_id. The description adds no additional parameter meaning, which is the correct baseline of 3 when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (scan/check) and resources (recent drives and charging sessions) tied to 'driving achievements', so the agent can tell it apart from pure data-fetch siblings like tesla_drives or tesla_charges. However, it does not distinguish itself from conceptually adjacent siblings such as check_daily_quest or get_driver_profile, and 'achievements' is left undefined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no named alternative. The agent cannot tell from the text whether this is the right tool versus check_daily_quest, get_driver_profile, or tesla_driving_score; usage is only implied by the verb 'check'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_monthly_driving_reportGenerate Monthly Driving ReportC
Generate a polished Markdown monthly driving report with Emoji.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| target_month | No | Month in 'YYYY-MM' format. Defaults to previous month. Example: "2026-03" for March 2026. | |
| electricity_price | No | RMB/kWh fallback when cost is not recorded (default: 0.5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the report is saved to a file, returned as text, the format details beyond Markdown and Emoji, whether it requires authentication, or whether it has any side effects. For a report generation tool with no annotations and an output schema, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence that is front-loaded and wastes no words. It is appropriately sized for a simple report generation tool, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, an output schema, and several similar monthly report siblings, the description is incomplete. It does not clarify the tool's uniqueness, its output format beyond 'Markdown with Emoji', or any behavioral traits. An agent would struggle to choose this over tesla_monthly_report or tesla_monthly_summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all three parameters including defaults and formats. The description adds no parameter information beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Generate a polished Markdown monthly driving report with Emoji.' The agent knows it produces a monthly driving report in Markdown. However, it does not distinguish from siblings like tesla_monthly_report or tesla_monthly_summary, leaving ambiguity about which monthly report tool to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus tesla_monthly_report, tesla_monthly_summary, or other reporting tools. No prerequisites or context are provided. The description only states what it does, not when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_travel_narrative_contextGenerate Travel Narrative ContextC
Generate a travel narrative timeline for LLM-powered travel blogging.
Extracts structured drive and stop data within a time window for generating travel narratives or Vlog scripts.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_time | Yes | ISO8601 end time (e.g. "2026-03-03T23:59:59" or "2026-03-03") | |
| start_time | Yes | ISO8601 start time (e.g. "2026-03-01T00:00:00" or "2026-03-01") |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not indicate whether the operation is read-only, the granularity of extracted data, pagination behavior, or any constraints. It does say it extracts structured drive and stop data, which is a small behavioral hint, but overall leaves significant gaps for a data-extraction tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core purpose and followed by a clarifying detail. It is efficient with no wasted words, though the second sentence is slightly redundant with the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so the return format need not be explained, and the schema fully covers parameters. However, with no annotations and no usage guidance, the description is only minimally adequate for an agent to confidently select and invoke this tool among many similar siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters including the default behavior for car_id. The description adds little parameter-level detail beyond 'within a time window', so the baseline of 3 for high schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool generates a travel narrative timeline and extracts drive and stop data within a time window, which is specific enough. However, it does not distinguish this from siblings like tesla_drives or generate_monthly_driving_report, leaving the agent to infer when this narrative-focused aggregation is preferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no exclusions, and no named alternatives. The phrase 'for LLM-powered travel blogging' hints at the use case but does not tell the agent when to select this over tesla_drives or other trip tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_weekend_blindboxGenerate Weekend BlindboxA
Discover rare one-time destinations as a weekend 'memory blindbox'.
Finds places visited only once in the lookback period, where the car stayed for at least min_stay_hours -- good candidates for a surprise 'where was I?' weekend trip recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| min_stay_hours | No | Minimum stay duration in hours (default: 2.0) | |
| months_lookback | No | How many months to search back (default: 12) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, and it does disclose the actual selection logic: places visited exactly once within the lookback, filtered by min_stay_hours. That is meaningful behavioral context for a computed/read-only tool, though it never explicitly says the operation is read-only or what permissions/side effects apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core outcome and followed by the selection criteria. The 'memory blindbox' metaphor is slightly loose but does not waste space or bury the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param, no-required-arg analytics tool with an output schema handling return format, the description covers purpose, selection algorithm, and trip-recommendation intent. Only the read-only nature and relationship to sibling destination tools are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents car_id, min_stay_hours, and months_lookback. The description restates min_stay_hours and 'lookback period' but adds no syntax, units, or defaulting nuance beyond the schema — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific outcome (find rare one-time destinations visited only once, with a minimum stay) rather than restating the name. An agent can tell it produces surprise weekend-trip candidates, though it never names which sibling (e.g., tesla_top_destinations) it replaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage through 'good candidates for a surprise weekend trip recommendation' and the 'memory blindbox' framing, but gives no explicit when-to-use/when-not or any alternative tool for plain destination lookups. Usage is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_charging_vintage_dataGet Charging Vintage DataC
Get detailed physical parameters for a single charging session.
Intended for LLM to roleplay a 'vintage data sommelier'.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| charge_id | No | Specific charging session ID. If None, returns the latest. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose permissions, whether it is read-only (implied by 'get' but unstated), what 'physical parameters' are returned, or the default-resolution behavior (env fallback / latest session). The sommelier framing adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short, which is efficient, but the second sentence about LLM roleplay does not earn its place in a tool description and distracts from the actual contract. Front-loading the verb+resource is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a read tool with no annotations and heavy sibling overlap, the description is too thin to route an agent reliably and omits any disambiguation from the other charging tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents both parameters including defaults and the 'latest' fallback. The description adds nothing beyond the schema. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get physical parameters for a single charging session. But 'vintage data' is undefined jargon, and the description offers no differentiation from the many sibling charging tools (tesla_charging_history, tesla_charges, tesla_charging_by_location). The 'sommelier' framing muddies rather than clarifies purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. With dozens of charging-related siblings, the description never states when to pick this over tesla_charges or tesla_charging_history. The 'sommelier roleplay' line is stylistic direction, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_driver_profileGet Driver ProfileB
Get driver gamification profile -- rank, milestones, and Easter eggs.
Returns the user's current driving rank, total stats, unlocked milestones, and hints for the next milestone. Easter egg triggers at 160,000 km.
Returns JSON with: current_rank, total_distance_km, total_charges, milestones_unlocked (list), next_milestone_hint, and special_160k Easter egg.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose useful behavioral traits — the returned fields and the 160,000 km Easter egg trigger — but never states that this is a read-only operation, nor any auth/permission needs. It adds real context but does not fully cover the behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and readable, but the trailing 'Returns JSON with: current_rank, total_distance_km...' duplicates content already conveyed by the output schema, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not (and largely need not have) re-listed return fields, yet it still conveys purpose and content adequately. The only meaningful gap is the absence of any routing guidance among the many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single car_id parameter is fully documented in the schema with its default-resolution logic. The description adds nothing about car_id, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get driver gamification profile') and enumerates the exact content (rank, milestones, Easter eggs), so the agent knows what it retrieves. However, it never distinguishes itself from conceptually overlapping siblings like check_driving_achievements, check_daily_quest, or tesla_driving_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. With several gamification-adjacent siblings (check_driving_achievements, get_vehicle_persona_status, check_daily_quest), the agent is left to infer which one to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_longest_trip_on_single_chargeGet Longest Trip On Single ChargeB
Find the longest distance driven between two consecutive charges.
Uses window functions on charging_processes to define charge windows, then sums drives within each window to find the record.
Returns JSON with: record_distance_km, start_time, end_time, start_battery_pct, arrival_battery_pct, battery_consumed_pct, efficiency_comment.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It partially compensates by disclosing the computation (window functions on charging_processes) and the returned fields, but it does not say whether this is a read-only aggregate, what permissions/defaults apply, or how cost is measured across gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core result, followed by the method and the return fields. Slightly padded by the implementation detail about window functions, which is interesting but not necessary for invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description redundantly enumerates return fields rather than trusting the schema. Combined with clear purpose and full parameter coverage, an agent has enough to call it correctly; the missing piece is any note on read-only safety or empty-result behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single car_id parameter is fully documented in the schema, including its default resolution behavior. The description adds no parameter meaning beyond that, which matches the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource with a differentiating constraint: the distance must be 'between two consecutive charges', which separates it from generic trip aggregations. However, it never names or contrasts with the sibling 'tesla_longest_trips', leaving that overlap ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no reference to an alternative tool. Usage is only implied by the purpose sentence, which is thin given several overlapping sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vehicle_persona_statusGet Vehicle Persona StatusA
Get vehicle persona status -- activity, fatigue, extremes, and health metrics.
Provides structured metrics for an LLM to roleplay a "vehicle with personality", including idle ratio, longest continuous drive, max speed, and vampire drain.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Specific year to analyze (e.g. 2025). Use with month for single month. | |
| month | No | Specific month to analyze (1-12). Requires year to be set. | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| days_lookback | No | Number of days to analyze (default: 7, used when year/month not set) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does reveal the concrete outputs (idle ratio, longest continuous drive, max speed, vampire drain), which adds real behavioral context, but it says nothing about permissions, read-only nature, or analysis scope/windowing behavior beyond what the schema shows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core purpose front-loaded; the second sentence adds value by naming the concrete metrics. Slightly informal 'vampire drain'/'personality' framing but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and all four parameters are documented in the schema. The description supplies the intent and the metric highlights, making it adequate for an agent to select and call the tool, though it gives no guidance on temporal precedence among the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% -- year, month, car_id, and days_lookback are all documented with defaults and interaction rules (month requires year; days_lookback used when year/month unset). The description adds no parameter information beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource (vehicle persona status) and enumerates the metric categories it contains (activity, fatigue, extremes, health). It is clear what the tool does, but it does not distinguish itself from near-neighbors like tesla_status or get_driver_profile, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line about providing 'structured metrics for an LLM to roleplay a "vehicle with personality"' implies the intended use case, but there is no explicit when-to-use, when-not-to-use, or named alternative among the many sibling tools (tesla_status, get_driver_profile, tesla_driving_score). Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_battery_healthTesla Battery HealthB
Battery degradation trend -- range at 100% charge over time.
Shows monthly snapshots of ideal range when battery is at 100%.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden. It usefully states the output shape (monthly snapshots of ideal range) and the temporal nature of the data, which hints at a read-only historical tool. However, it does not confirm read-only semantics, permissions, or how far back the trend extends.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no wasted words. The second sentence partially restates the first ('range at 100% charge' vs 'ideal range when battery is at 100%'), a minor redundancy, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value explanation is not required, and the single optional parameter is fully covered by the schema. For a simple read-only trend tool the description is mostly sufficient, though it omits any usage or scope guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single optional parameter with 100% schema description coverage, so the schema fully documents car_id's filtering and default behavior. The description adds no parameter meaning beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and metric: a battery degradation trend measured as range at 100% charge over time, with monthly snapshots. This is clearly distinct from charging or status siblings. It doesn't explicitly name or differentiate itself from any alternative, but no close sibling overlaps this specific health metric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as tesla_status or tesla_charging_history, and no mention of any prerequisites. The agent must infer usage context entirely from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_carsTesla CarsA
List all vehicles registered in TeslaMate.
Returns each car's ID, name, model, VIN, and efficiency. Use the car_id with other tools to query a specific vehicle.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but this is an inherently safe zero-parameter read, so there is little risk to disclose. It does describe the returned fields (ID, name, model, VIN, efficiency), though that overlaps with the output schema. No auth, rate-limit, or error behavior is mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and ending on actionable usage guidance. The middle sentence listing return fields is partly redundant given an output schema exists, but it is brief and does no real harm.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter read tool with an output schema and no annotations, the description covers purpose, returned content, and the downstream car_id handoff. Little more is required for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to clarify beyond what the empty schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'List all vehicles registered in TeslaMate' — and names the identity fields returned. It does not explicitly contrast itself with any sibling, but its purpose as the vehicle-enumeration entry point is unambiguous among the many analytical Tesla tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing sentence 'Use the car_id with other tools to query a specific vehicle' gives workflow context, implying this tool should be called first to obtain IDs. However, it never states when to use this versus alternatives or any prerequisite conditions, so guidance 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.
tesla_chargesTesla ChargesB
Detailed charging sessions with location, energy, cost breakdown.
Unlike tesla_charging_history which summarizes by process, this returns granular charging session data.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30) | |
| limit | No | Maximum sessions to return (default: 50, -1 for all) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_date | No | Filter until date (YYYY-MM-DD) | |
| start_date | No | Filter from date (YYYY-MM-DD) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether this is read-only, whether it requires auth, pagination behavior, rate limits, or what the response contains beyond 'location, energy, cost breakdown'. An output schema exists, which offsets return-value disclosure, but the read-safety and operational context are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the primary description front-loaded and the sibling distinction second. No filler, though it is on the sparse side for a tool with a rich sibling set.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a read-style query tool: it covers purpose, content dimensions, and sibling relationship, and an output schema fills in return values. However, with zero annotations and no notes on auth, read-only nature, or pagination, it leaves behavioral gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (days, limit, car_id, end_date, start_date) are already documented in the schema. The description adds no parameter-level detail. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Detailed charging sessions') and enumerates the content (location, energy, cost breakdown). It explicitly distinguishes itself from sibling tesla_charging_history by contrast (granular session data vs. summarized by process), which is strong sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names tesla_charging_history as the alternative and implies this tool is for granular per-session data, but stops short of explicit when/when-not conditions. The contrast gives usable routing context but is not a full usage directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_charging_by_locationTesla Charging By LocationC
Charging sessions grouped by location.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 0 = all time) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, and it discloses nothing: no indication of whether the grouping returns per-car totals, what location granularity means, whether results are ordered, or any limits or permissions. A single noun phrase is far too thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no padding or repetition. It is efficient, though so minimal that the terseness borders on under-specification rather than deliberate concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and both parameters are fully documented, which covers much of the burden for a simple two-parameter aggregation. However, with no annotations and no routing guidance against the many charging-related siblings, an agent still cannot confidently decide when to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both days and car_id fully documented including defaults and the TESLA_CAR_ID fallback, so the schema does the heavy lifting. The description adds no parameter meaning beyond what is already there, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase names a specific resource (charging sessions) and a specific aggregation (grouped by location), which is enough to separate it from raw-log siblings like tesla_charges and tesla_charging_history. It lacks an explicit verb and never names those siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the alternative tools an agent should pick instead. The only usage signal is the implied notion that an aggregated view is wanted, which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_charging_historyTesla Charging HistoryB
Charging sessions over the last N days.
Shows energy added, duration, battery range, and location for each session.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30, max: ~10 years) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_date | No | Filter charging until this date (YYYY-MM-DD), defaults to today | |
| start_date | No | Filter charging from this date (YYYY-MM-DD), overrides days param |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read-only historical query and enumerates the returned fields (energy added, duration, battery range, location), which is useful signal, but it says nothing about permissions, vehicle-selection behavior when car_id is omitted, or data availability limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the scope and then the returned content; every clause earns its place. It could be marginally tighter, but there is no waste or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no elaboration, and the parameters are fully covered by the schema. What is missing for an unannotated read tool with many similar siblings is any differentiation or usage context, leaving the definition minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so days, start_date, end_date, and car_id are already fully documented in the schema, including defaults and the start_date-overrides-days rule. The description only echoes the 'last N days' framing and adds nothing about the date-range or car_id semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Charging sessions over the last N days') and names the fields returned, so an agent knows this is a historical charging log rather than a live state read. It does not, however, distinguish itself from close siblings such as tesla_charges, tesla_charging_by_location, or get_charging_vintage_data, which is the main remaining gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g., a vehicle must be configured), and no routing to alternatives like tesla_charges for live charging state or tesla_charging_by_location for aggregated location breakdowns. The agent must infer the use case purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_drivesTesla DrivesC
Recent drives -- distance, duration, efficiency, start/end locations.
Shows driving activity with energy consumption.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back from today (default: 30, max: 3650/10years) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_date | No | Filter drives until this date (YYYY-MM-DD), defaults to today | |
| start_date | No | Filter drives from this date (YYYY-MM-DD), overrides days param |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry behavioral burden. It does not state whether this is a read-only operation, its performance characteristics, permissions, or return format (though output schema exists). Only adds minimal context about energy consumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource. The second sentence ('Shows driving activity with energy consumption') is somewhat redundant with the first, but overall concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter query tool with full schema coverage and an output schema, the description is minimally adequate. However, it lacks usage context and behavioral disclosure, which are needed without annotations, leaving gaps for an agent to choose and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter details are fully documented in the schema. The description adds nothing about parameters, but baseline is 3 when schema covers them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States it returns recent drives with distance, duration, efficiency, and locations, which is a specific resource and set of attributes. It distinguishes from siblings only by name; no explicit contrast with other drive-related tools like tesla_longest_trips or tesla_driving_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance or alternatives. Does not indicate when to choose this over other drive or trip tools, nor any prerequisites or time-range specifics beyond the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_driving_scoreTesla Driving ScoreC
Driving score based on acceleration, braking, and speed habits.
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Number of recent drives (period="recent_n") | |
| days | No | Number of recent days (period="days") | |
| year | No | Year for monthly/months period (e.g. 2024) | |
| month | No | Month (period="monthly", 1-12) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| period | No | "recent_n" | "days" | "monthly" | "months" | recent_n |
| end_month | No | End month (period="months", 1-12) | |
| start_month | No | Start month (period="months", 1-12) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions score composition but omits whether the operation is read-only, permission requirements, return format, or how period modes affect behavior, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a brief tool summary, though the fragment style slightly reduces structural clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, given eight optional parameters with multiple period modes and no annotations, the description is incomplete: it does not explain how to choose among period settings or when this score tool is preferable to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all eight parameters are documented directly in the schema. The description adds no parameter semantics beyond that, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource, the driving score, and its inputs (acceleration, braking, speed habits). It lacks an explicit verb like 'retrieve' and does not differentiate the tool from siblings such as tesla_monthly_report or check_driving_achievements, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor are prerequisites or exclusions mentioned. The description only states what the score is based on, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_efficiencyTesla EfficiencyB
Energy consumption trends -- Wh/mi over time.
Shows weekly average efficiency from driving data.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 90) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_date | No | Filter drives until this date (YYYY-MM-DD), defaults to today | |
| start_date | No | Filter drives from this date (YYYY-MM-DD), overrides days param |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full behavioral burden. It does disclose the metric (Wh/mi), the aggregation window (weekly averages), and the data source (driving data), which helps the agent interpret output. However, it says nothing about auth requirements, data availability behavior, or empty-result handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the metric and resource, zero filler. Every clause adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the schema fully covers parameters. What is missing is the routing context: with three closely related efficiency tools, the description should say when this plain variant is preferred over the temp/weather breakdowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (days, car_id, end_date, start_date) are already documented in the schema, including defaults and override behavior. The description adds no parameter-level meaning beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and metric: energy consumption trends in Wh/mi, aggregated as weekly averages from driving data. Clear what the tool computes, but it does not distinguish itself from close siblings like tesla_efficiency_by_temp or tesla_efficiency_by_weather.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance and no alternatives named. An agent must infer from the name that this is the default overall efficiency view versus the temperature/weather variants. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_efficiency_by_tempTesla Efficiency By TempC
Efficiency curve by temperature -- Wh/mi at different temps.
Shows how outside temperature affects energy consumption.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: not whether data is cached/live, the time window, granularity, or units beyond Wh/mi. It is purely a restatement of the concept.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and unit. Not wasteful, though the second sentence largely restates the first ('efficiency by temperature' = 'how temperature affects consumption').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the lone parameter is documented. But with no annotations and a sibling overlap (by_weather), the description is only minimally complete for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional car_id is fully documented in the schema, including the env-var fallback. The description adds no parameter meaning beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (efficiency curve by temperature, expressed as Wh/mi) with a clear measurement unit. It does not name or differentiate from the very similar sibling tesla_efficiency_by_weather, which an agent selecting between the two would need.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of the near-identical sibling tesla_efficiency_by_weather or the broader tesla_efficiency tool. The agent is left to infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_efficiency_by_weatherTesla Efficiency By WeatherA
Efficiency grouped by weather condition (via QWeather historical data).
Unlike tesla_efficiency_by_temp (which only buckets by outside_temp), this back-fills each drive's actual weather (clear/rain/snow/fog/wind) from QWeather's historical API and shows how conditions — not just temperature — affect consumption. Same 5°C day can differ hugely: dry-clear vs rain/snow.
Method (no database writes):
Pull recent drives with start/end coords, time, and ideal-range delta.
For each drive use its midpoint coordinate + mid-time to resolve a QWeather LocationID (cached) then daily historical weather (cached).
Bucket the drive by weather and aggregate kWh / distance per bucket.
To stay within API limits only the most recent drives are sampled (TESLA_WEATHER_SAMPLE_MAX, default 60). Requires QWEATHER_API_KEY + QWEATHER_API_HOST; otherwise returns a friendly hint.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days (default: 90) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, and it does so well: it discloses the no-database-writes behavior, the API rate-limit mitigation via sampling (TESLA_WEATHER_SAMPLE_MAX default 60), caching, and required env vars with a graceful fallback. It stops short of describing output shape, but an output schema exists to cover returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose statement followed by a clear contrast, then a numbered method and a limits note. The method list is slightly long but each step earns its place by explaining the sampling/caching pipeline. No redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-step analysis tool with external API dependencies, the description covers the method, constraints (sampling, caching, API keys), and result grouping. An output schema exists so return values need not be explained. Nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two parameters (days, car_id) are already documented in the schema with defaults and env fallbacks. The description adds contextual detail about sampling and env-based car selection but nothing parameter-specific beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific analysis (efficiency grouped by weather condition) and explicitly contrasts with the sibling tesla_efficiency_by_temp, noting it buckets by actual weather rather than just outside_temp. An agent can distinguish this tool from its closest sibling without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Points to the alternative (tesla_efficiency_by_temp) and explains the differentiating condition (weather condition vs temperature bucket). It also surfaces prerequisites (QWEATHER_API_KEY/HOST). However, it does not state explicit when-not-to-use conditions or when the temp-based tool is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_liveTesla LiveA
Latest polled vehicle state from TeslaMate -- battery, climate, location.
Data comes from TeslaMate's positions table (polled periodically, not real-time). Fields like sentry mode, lock status, and media are not available in TeslaMate and are omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does disclose meaningful traits: the data source (TeslaMate positions table), the polling cadence caveat ('polled periodically, not real-time'), and explicitly omitted fields (sentry mode, lock status, media). Auth requirements and rate limits are still unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and the freshness/omission caveats grouped after. No filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. The description supplies the essential context an agent needs – source, staleness, and what is missing – though it leaves the relationship to the similarly-named tesla_status sibling unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single car_id parameter is already fully documented, including its default resolution order. The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource – the latest polled vehicle state – and enumerates the domains covered (battery, climate, location). It is distinguishable from the history siblings (tesla_state_history, tesla_location_history) by the word 'latest', but it does not explicitly name tesla_status, which likely overlaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'latest polled' suggests current-snapshot use vs the history tools, and the 'not real-time' note implies when this data is unsuitable. However, no sibling is named as an alternative and no explicit when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_location_historyTesla Location HistoryB
Where the car has been -- top locations by time spent.
Groups positions by proximity and shows time at each cluster.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 7) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_date | No | Filter positions until this date (YYYY-MM-DD), defaults to today | |
| start_date | No | Filter positions from this date (YYYY-MM-DD), overrides days param |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the disclosure burden. It usefully explains the clustering/proximity-grouping behavior and that output is time-at-cluster, but says nothing about permissions, empty-data behavior, or result ordering. Adds genuine behavioral value beyond the schema while leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with zero filler. The core identity ('where the car has been') is front-loaded and the mechanism follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and params are fully covered in the schema. The description covers the computation adequately, though it omits the days-vs-start_date override nuance and any routing guidance among similar location tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (days, car_id, start_date, end_date) are already documented in the schema. The description adds no parameter-level meaning, which is acceptable given the schema does the work, hitting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('where the car has been', 'top locations by time spent') plus the mechanism ('groups positions by proximity'). Clear on its own, but it does not distinguish itself from close siblings such as tesla_top_destinations or tesla_charging_by_location, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to reach for this tool versus tesla_top_destinations, tesla_charging_by_location, or tesla_state_history. There is no stated precondition or exclusion, so the agent must infer selection purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_longest_tripsTesla Longest TripsC
Top drives ranked by distance -- your epic road trips.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of trips to show (default: 10, max: 100) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It doesn't say whether this is read-only, how ranking ties are handled, or what the return shape includes, though an output schema exists. 'Your epic road trips' is marketing, not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses, front-loaded with the core action. No wasted sentences, though the second clause is decorative rather than informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values needn't be explained, but the description is thin for a ranking tool with no annotations and several similar siblings. It leaves the differentiation burden entirely on the name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are documented in the schema. The description adds nothing parameter-specific, which meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and ranking criterion (drives ranked by distance), which is clear enough. However, 'Top drives ranked by distance' is vague about whether it ranks drives overall, per trip, or per vehicle, and it doesn't distinguish itself from siblings like tesla_drives or get_longest_trip_on_single_charge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus tesla_drives, tesla_trips_by_category, or get_longest_trip_on_single_charge. The agent is left to infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_monthly_reportTesla Monthly ReportC
Monthly driving report with stats and comparison to previous month.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (e.g., 2026) | |
| month | Yes | Month (1-12) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only aggregation but never states permissions, cost of the call, whether data is live or cached, or what timezone/aggregation boundaries apply; with an output schema present the return content is partly covered, but call-time behavior is not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity is partly under-specification rather than deliberate compression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema the return shape needn't be explained, and the schema documents all three parameters. What is missing is the disambiguation against near-identical monthly siblings and any behavioral context, which the description leaves entirely to the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the car_id fallback to TESLA_CAR_ID or the first car, so the schema already does the heavy lifting. The description adds no extra meaning about year/month handling or the car_id default, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (monthly driving report) and its contents (stats plus month-over-month comparison), which is better than a tautology. However, it does nothing to distinguish itself from very close siblings like tesla_monthly_summary and generate_monthly_driving_report, leaving an agent unable to choose between them from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus the many overlapping siblings (monthly summary, monthly driving report generator, savings, efficiency breakdowns). The only implied usage is 'when you want a monthly report,' which is circular.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_monthly_summaryTesla Monthly SummaryA
Monthly driving summary -- splits energy into three independent categories:
Drive kWh -- estimated from drive range-drop (行驶能耗)
Charge kWh -- energy added during charging sessions (充电能耗)
Vampire kWh -- parked drain between drive_end and next event (停车耗电)
Wh/km uses ONLY driving kWh so efficiency is not contaminated by charging losses or vampire drain. The three categories are summed independently from their respective primary sources and never mixed in calculations.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| months | No | Number of months to show (default: 6, max: 120) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it does disclose derivation semantics that matter for interpreting results: drive kWh is estimated from range-drop, charge kWh from sessions, vampire kWh from parked drain, and Wh/km is computed from driving kWh only so efficiency is not contaminated. It omits auth/permission needs, cost, and side-effect profile, so it is not complete, but the estimation methodology is unusually substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by a scannable bulleted breakdown of the three categories, with the Wh/km caveat last. Every line carries information; only the parenthetical Chinese labels are arguably redundant, which keeps it just under 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is unnecessary, and both parameters are schema-documented. Given the tool's semantic complexity, the description supplies the crucial unit-definition context needed to use the output correctly; only cross-tool routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (car_id default resolution, months default/max) are already fully documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: a monthly driving summary broken into three named energy categories, each with its source. An agent knows exactly what the tool produces. It stops short of 5 because it never distinguishes itself from close siblings such as tesla_monthly_report and generate_monthly_driving_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the month-counting parameter, but the description never says when to prefer this over tesla_monthly_report, tesla_drives, or tesla_vampire_drain, nor any prerequisites. No explicit when/when-not guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_savingsTesla SavingsC
Gas savings scorecard -- how much you've saved vs a gas car.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| gas_price | No | Gas price per gallon (default from TESLA_GAS_PRICE env, or $3.50) | |
| mpg_equivalent | No | Comparable gas vehicle MPG (default from TESLA_GAS_MPG env, or 28) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does not say whether this is a read-only computation, whether it needs any prior data (charging history), or how env-var fallbacks behave. It implies a safe read via 'savings scorecard', but that is inference rather than disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause with zero waste. It is arguably too terse for a tool with sibling overlap, but nothing in it is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and params are fully covered, so return values and inputs need no prose. What is missing is the routing context: when this beats calculate_eco_savings_vs_icev or tesla_trip_cost. Adequate but with a clear gap for a 3-param tool in a dense sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so car_id, gas_price, and mpg_equivalent (including their env-var defaults) are already fully documented. The description adds no parameter meaning beyond the schema, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear resource and scope: a gas-savings scorecard comparing running cost against a gas car. An agent can grasp what the tool computes, but nothing distinguishes it from the near-identical sibling calculate_eco_savings_vs_icev, so it fails the sibling-differentiation bar for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the closest alternative (calculate_eco_savings_vs_icev) despite obvious overlap. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_software_updatesTesla Software UpdatesB
Firmware version history -- all recorded software versions and install dates.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'History' and 'all recorded' imply a read-only, unfiltered listing, which is useful, but the description says nothing about pagination, ordering, or the fact that the schema actually supports filtering by vehicle.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the resource. There is mild redundancy between 'firmware version history' and 'all recorded software versions', but nothing is wasted overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the single parameter is documented. What is missing is any routing against the sibling 'tesla_version' and any note on ordering or scope limits, which leaves the definition merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single car_id parameter is fully documented in the schema, including its env-var default. The description adds nothing about the parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and what it contains ('firmware version history -- all recorded software versions and install dates'), which is more than a restatement of the title. It does not, however, distinguish itself from the sibling 'tesla_version', which an agent could easily confuse with a firmware-version tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of the near-synonymous sibling 'tesla_version'. The agent must infer the intended scope entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_state_historyTesla State HistoryB
Vehicle state transitions -- online, asleep, offline.
Shows when the car was awake vs sleeping, useful for vampire drain analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 7) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_date | No | Filter states until this date (YYYY-MM-DD), defaults to today | |
| start_date | No | Filter states from this date (YYYY-MM-DD), overrides days param |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose the semantic content of the result (state transitions between awake and sleeping). It says nothing about permissions, data freshness/rate limits, or granularity, so it is only partially transparent for a history-read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the returned resource, with the interpretive sentence second. The vampire-drain sentence earns its place by giving intent, though 'online, asleep, offline' and 'awake vs sleeping' restate the same idea.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is unnecessary and parameters are fully documented. What is missing is the relationship to the close sibling tesla_vampire_drain, which an agent must choose between; without it the definition is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with defaults and the start_date-overrides-days interaction already documented in the schema. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (vehicle state transitions) and enumerates the values it reports (online, asleep, offline), so an agent knows exactly what data this returns. It stops short of distinguishing itself from sibling tesla_vampire_drain, which it actually points at by citing 'vampire drain analysis' as the use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one implied use case ('useful for vampire drain analysis'), which tells the agent something about intent. However, it never states when to prefer this over tesla_vampire_drain (which appears to compute drain directly), tesla_status, or tesla_live, and gives no exclusions or preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_statusTesla StatusB
Current vehicle state -- battery, range, location, climate, odometer.
Returns the latest position snapshot and vehicle info from TeslaMate.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the returned field categories and that it is a 'latest position snapshot', which is useful, but says nothing about freshness/staleness, auth requirements, or whether the data is cached versus live. It adds moderate context beyond a bare purpose statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences that front-load the resource and its fields. No filler; the only mild redundancy is the second sentence restating content already implied by the first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, single-optional-parameter read tool with an output schema present, the description explains what is returned without needing to detail return values. The key gap is the lack of differentiation from tesla_live/tesla_state_history, which matters in this crowded toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (car_id) exists and schema description coverage is 100%, so the schema already documents the ID filter and its default behavior. The description adds no meaning beyond that, which is acceptable baseline given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource set ('Current vehicle state') and enumerates the fields returned (battery, range, location, climate, odometer), plus the source (TeslaMate). However, it does not differentiate from likely-overlapping siblings such as tesla_live or tesla_state_history, so the agent cannot fully disambiguate from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance is given. With ~37 sibling tools including tesla_live and several history/status tools, the absence of routing guidance leaves the agent to guess which 'current state' tool to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_top_destinationsTesla Top DestinationsB
Most visited locations ranked by number of visits.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of destinations to show (default: 15, max: 100) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It does not mention how visits are counted, over what timeframe, whether it reads live data, or the auth/vehicle context implied by the car_id default. Only the ranking basis is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and annotations are absent. What's missing is query scope (time window, visit definition) and any guidance on choosing this over the many location-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both params (limit, car_id) are fully documented in the schema including defaults, max, and env fallback. The description adds no parameter detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (ranked) and resource (most visited locations) with the ranking metric (number of visits). Clear on its own, though it doesn't explicitly differentiate from sibling tesla_charging_by_location or tesla_location_history, which could also surface locations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this vs. tesla_location_history, tesla_charging_by_location, or tesla_longest_trips. The agent must infer the difference between 'most visited destinations' and 'location history' on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_tpms_historyTesla Tpms HistoryA
Recent TPMS pressure history from TeslaMate.
Shows the average and min/max pressures recorded in positions table. Note: TeslaMate only stores positions during drives/charging, not while parked.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_date | No | Filter TPMS until this date (YYYY-MM-DD), defaults to today | |
| start_date | No | Filter TPMS from this date (YYYY-MM-DD), overrides days param |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and does add a genuinely useful behavioral trait: data is only recorded during drives/charging, not while parked. This is real context that prevents misinterpretation of sparse results. It stops short of stating read-only nature or any auth/rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core purpose, then output content, then the key caveat. Every sentence earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values needn't be spelled out, and the data-availability caveat covers the main trap for a read-only history tool. It is largely complete, though it would benefit from explicit sibling routing to tesla_tpms_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (days, car_id, start_date, end_date) are already documented in the schema, including the start_date override of days. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (TPMS pressure history) and clarifies the data source (TeslaMate positions table) plus what it reports (average and min/max pressures). The 'history' framing implicitly distinguishes it from the sibling tesla_tpms_status, but it never names or contrasts that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the 'history' scope and the caveat about when data exists. There is no explicit when-to-use/when-not guidance and no routing to alternatives such as tesla_tpms_status for current readings, so the agent must infer the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_tpms_statusTesla Tpms StatusA
Current TPMS pressures with warnings for anomalies.
Reads from the latest position record in TeslaMate. Warns if any tyre is below TESLA_TPMS_MIN_THRESHOLD or above TESLA_TPMS_MAX_THRESHOLD, or differs from the average by > 0.15 bar.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It transparently discloses the data source ('latest position record in TeslaMate') and the warning logic, including threshold sources and the >0.15 bar deviation rule. It does not cover auth requirements or failure modes, but this is a read-only status tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then adds source and warning criteria in compact sentences. Every sentence earns its place by explaining behavior the agent needs to interpret the output correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, 100% schema coverage, and an output schema, the description supplies enough context: what is returned, where it comes from, and how anomalies are identified. No critical agent-facing detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the single car_id parameter, so the baseline is 3. The description does not add any parameter meaning beyond the schema, such as default resolution behavior or filtering semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('TPMS pressures') and temporal scope ('Current'), which distinguishes it from the sibling tesla_tpms_history. An agent can tell this tool reports present tyre pressure status rather than historical data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through 'Current TPMS pressures,' but it does not explicitly say when to choose this over tesla_tpms_history or other status tools. No when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_trip_categoriesTesla Trip CategoriesC
Show count of trips by category for recent drives.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a read-only aggregation but never says so, and gives no information on time window ('recent'), scoping defaults, or whether counts are per-day/per-trip.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One efficient sentence with the core action front-loaded. No padding or repetition of structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a zero-annotation tool the description is only minimally complete: it never defines what counts as a category or a recent drive, which an agent could need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single car_id parameter is already fully documented including its env-var default. The description contributes nothing beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: shows trip counts grouped by category, scoped to recent drives. Clear enough, though the phrase 'recent drives' is undefined and there's no explicit contrast with the close sibling tesla_trips_by_category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. There is a directly overlapping sibling, tesla_trips_by_category, and the description gives no condition that would let an agent choose between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_trip_costTesla Trip CostA
Estimate trip cost to a destination -- kWh, cost, range check.
Uses your personal 30-day average efficiency and current battery level. If QWeather is configured, the current weather at the origin and the destination is shown for reference only — it does NOT change the energy or cost estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| gas_price | No | Gas price per gallon (default from TESLA_GAS_PRICE env) | |
| destination | Yes | City, address, or place name (e.g. "Atlanta, GA") | |
| mpg_equivalent | No | Comparable gas vehicle MPG (default from TESLA_GAS_MPG env) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it does disclose meaningful behavior: the estimate derives from a personal 30-day average efficiency and current battery level, and weather is display-only. It omits whether the call is side-effect free, permission/env requirements for the fallback defaults, and failure behavior for un-geocodable destinations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and outputs are front-loaded in the first line, followed by methodology and the weather caveat. Every sentence carries information; the weather note is slightly longer than needed but prevents a real misconception, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers purpose, data sources, and a caveat. What is missing is usage routing against the many savings/efficiency siblings, which leaves a modest gap for a tool in this crowded family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters (car_id, gas_price, mpg_equivalent, destination) are already documented, including their env-var defaults. The description adds no parameter-level meaning, which is the correct baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (estimate) plus resource (trip cost to a destination) and an enumeration of the outputs (kWh, cost, range check). An agent can distinguish this from compute-only siblings like tesla_efficiency, though it never names the closest alternatives (tesla_savings, calculate_eco_savings_vs_icev).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the required 'destination' argument and the trip-planning framing, but there is no explicit when-to-use guidance, no prerequisites, and no exclusions naming which sibling to prefer for savings or historical-trip questions. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_trips_by_categoryTesla Trips By CategoryC
Get trips filtered by category.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back from today (default: all time if days/start_date not set) | |
| limit | No | Max trips to return (default: 20) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| category | No | "commute", "shopping", "leisure", "long_trip", or "other" | commute |
| end_date | No | Filter drives until this date (YYYY-MM-DD), defaults to today | |
| start_date | No | Filter drives from this date (YYYY-MM-DD), overrides days param |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and discloses essentially nothing: no note that it is a read-only query, no pagination/limit behavior, no default date-window behavior, no permission requirements. An output schema exists, which covers return shape, but invocation-side behavior is left implied by the word 'Get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler and no repetition of the title or schema. It is efficient, though economy here shades into under-specification rather than true tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The rich schema and existing output schema mean parameters and return values are adequately covered elsewhere, so the description does not need to restate them. What remains missing is the sibling-boundary information (category enumeration vs. category filtering) that makes this definition minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all six parameters (days, limit, car_id, category, end_date, start_date) carry their own documented defaults and semantics, so the schema does the heavy lifting. The description adds nothing beyond restating the category filter, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('trips') with the filtering dimension ('by category'), so the core operation is unambiguous. However, it makes no attempt to distinguish itself from close siblings like tesla_drives, tesla_trip_categories, or tesla_longest_trips, which an agent must otherwise infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternatives. An agent cannot tell from the text why it should pick this over tesla_trip_categories (likely the companion that enumerates available categories) or tesla_drives without opening both schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_vampire_drainTesla Vampire DrainA
Vampire drain analysis -- battery loss while parked overnight.
Checks for periods where the car was parked (no drives) for 8+ hours
and measures battery drop. A parked period is tagged "露营模式" when the
AVERAGE drain rate over the parked period is ≥
TESLA_CAMPING_KWH_PER_HOUR (default 0.8 kWh/h). The kWh conversion
uses a fixed 75 kWh reference battery — so the threshold does NOT
change whether the car is 75 / 82 / 100 kWh. Sentry and third-party-app
activity are NOT distinguished from camping use: any aggregate drain rate
at or above the threshold is flagged. If QWeather is configured, the
current weather at the parking location is shown for the worst few events
AND every camping-mode event (display-only).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to analyze (default: 14) | |
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) | |
| end_date | No | Filter drain until this date (YYYY-MM-DD), defaults to today | |
| start_date | No | Filter drain from this date (YYYY-MM-DD), overrides days param |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the 8-hour parked window, the camping-mode tagging rule and threshold, the fixed 75 kWh reference battery so the threshold is car-size-invariant, and the important limitation that Sentry/third-party activity is conflated with camping use. It omits only operational traits such as whether this is purely read-only and any permission or rate-limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then the threshold and caveats in dense but necessary prose. Every sentence earns its place: the window length, threshold, fixed reference battery, and Sentry caveat all change how an agent interprets the output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description supplies the interpretive context (what 'camping mode' means, why the threshold is fixed, what caveats apply). It is essentially complete for a read-only analysis tool, lacking only an explicit read-only/permission statement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (days, car_id, start_date, end_date each documented), so the schema does the parameter work and the description adds no syntax or format detail beyond it. Baseline 3 applies. Notably, the description's start/end defaults and car selection are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line states a specific verb and resource: vampire drain analysis of battery loss while parked overnight. It is clearly distinguishable from siblings like tesla_battery_health or tesla_state_history because it names the overnight-parked-loss phenomenon and the 8+ hour parked-window criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the framing (analyze overnight parked battery loss, with camping-mode tagging), and the caveat that Sentry/third-party drain is not distinguished tells the agent when results may mislead. However, it never explicitly names an alternative tool (e.g. battery_health, state_history) or states when-not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_versionTesla VersionA
Server version & diagnostic info — call first to confirm the build.
Returns the running server version, Python/fastmcp versions, timezone, tool count, and whether the TeslaMate database is reachable. Useful for support, debugging, and confirming you hit the expected deployment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and discloses what the tool returns, including server version, Python/fastmcp versions, timezone, tool count, and database reachability. It implies a read-only diagnostic operation, though it does not explicitly state read-only safety or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary purpose and followed by concrete return values and use cases. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter diagnostic tool with an output schema, the description provides enough context to invoke it correctly. It explains when to call it and what to expect, without over-explaining return values already covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to describe. The baseline score for a parameterless tool is 4, and the description correctly adds no misleading parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns server version and diagnostic info. It clearly distinguishes itself from all sibling Tesla data-query tools by being a build/deployment check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'call first to confirm the build' and lists support, debugging, and deployment verification as use cases. It gives clear context but does not discuss when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tesla_weatherTesla WeatherA
Current weather at the car's location (via QWeather 和风天气).
Uses the vehicle's latest GPS position to fetch real-time weather —
temperature, feels-like, humidity, wind, precipitation, visibility,
conditions. Complements TeslaMate's single outside_temp sensor.
Requires QWEATHER_API_KEY + QWEATHER_API_HOST env vars; otherwise returns a friendly hint and changes nothing else.
| Name | Required | Description | Default |
|---|---|---|---|
| car_id | No | Filter by vehicle ID (default: TESLA_CAR_ID env or first car) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does useful work: it discloses required QWEATHER_API_KEY and QWEATHER_API_HOST environment variables, says missing credentials return a friendly hint, and states that it changes nothing else. This effectively communicates read-only behavior and a failure mode, though it does not mention rate limits or permissions explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then details the weather fields, relationship to outside_temp, and credential requirements. It is appropriately sized for a simple one-parameter tool, with only minor overhead such as the Chinese provider name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter, 100% schema coverage, and an existing output schema, the description is largely complete: it explains what is fetched, where the location comes from, and what happens without API credentials. The main gap is stronger guidance on when to select it over related sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, car_id, is fully described in the schema as a vehicle ID filter with a default from TESLA_CAR_ID or the first car. The description adds no additional parameter-level meaning beyond that schema description, so this is the baseline adequate score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: fetch current weather at the vehicle's latest GPS location, via QWeather. It also gives rich returned fields and notes that it complements TeslaMate's single outside_temp sensor, making its scope distinguishable from generic status or weather-efficiency tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description: use it when current, detailed weather at the car's location is needed, especially to supplement the simple outside_temp sensor. However, it does not explicitly say when to choose this over siblings such as tesla_efficiency_by_weather or tesla_location_history, and it provides no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
38 tool updates
v0.1.0- First observed
calculate_eco_savings_vs_icev - First observed
check_daily_quest - First observed
check_driving_achievements - First observed
generate_monthly_driving_report - First observed
generate_travel_narrative_context - First observed
generate_weekend_blindbox - First observed
get_charging_vintage_data - First observed
get_driver_profile - First observed
get_longest_trip_on_single_charge - First observed
get_vehicle_persona_status - First observed
tesla_battery_health - First observed
tesla_cars - First observed
tesla_charges - First observed
tesla_charging_by_location - First observed
tesla_charging_history - First observed
tesla_drives - First observed
tesla_driving_score - First observed
tesla_efficiency - First observed
tesla_efficiency_by_temp - First observed
tesla_efficiency_by_weather - First observed
tesla_live - First observed
tesla_location_history - First observed
tesla_longest_trips - First observed
tesla_monthly_report - First observed
tesla_monthly_summary - First observed
tesla_savings - First observed
tesla_software_updates - First observed
tesla_state_history - First observed
tesla_status - First observed
tesla_top_destinations - First observed
tesla_tpms_history - First observed
tesla_tpms_status - First observed
tesla_trip_categories - First observed
tesla_trip_cost - First observed
tesla_trips_by_category - First observed
tesla_vampire_drain - First observed
tesla_version - First observed
tesla_weather
TDQS
Scored across 38 tools
Several tool pairs overlap heavily: tesla_status vs tesla_live both report current vehicle state; tesla_charging_history vs tesla_charges both return charging sessions; tesla_monthly_report, tesla_monthly_summary, and generate_monthly_driving_report all produce monthly summaries; tesla_savings vs calculate_eco_savings_vs_icev both compare against a gas car. Descriptions attempt to distinguish them, but the agent can easily pick the wrong one.
Most tools share a tesla_ prefix without a verb, while a sizable minority use get_/generate_/check_/calculate_ verb patterns. The mix is still readable, but it is not a single predictable convention.
With 38 tools, the surface is heavy for a read-only TeslaMate server, and many overlapping analytics could be parameters or consolidated. It far exceeds a well-scoped set and increases selection burden.
Coverage is broad: vehicle status, charging, drives, efficiency, battery health, TPMS, location, state history, software updates, savings, weather, and reports. Minor gaps exist around geofence/place management and deeper session drill-down, but typical analytics workflows are covered.
Maintenance
Related MCP Connectors
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
MCP server wrapping the Tesla Fleet API and TeslaMate API
Control your Tesla - wake it, warm it up, unlock and more. Get your developer token at https://Infoseek.ai/mcp. Also requires your own Tesla developer token which is tied to your car/fleet.
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Related MCP Servers
- AlicenseAqualityAmaintenanceA Model Context Protocol (MCP) server that provides access to your TeslaMate database, allowing AI assistants to query Tesla vehicle data and analytics.18140MIT
- AlicenseBqualityAmaintenanceEnables Claude Desktop to access Tesla vehicle data through the Tessie API. Users can query their car's location, battery level, mileage, driving history, and charging status using natural language.58MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to Tesla vehicle telemetry data via the Tessie API, enabling real-time monitoring of battery status, charging state, climate controls, location, and other vehicle metrics through 30+ tools with intelligent caching.-
- AlicenseBqualityCmaintenanceMCP server combining TeslaMate historical analytics with Fleet API live data and commands. Works with Claude Code, Claude Desktop, Cursor, and any MCP-compatible client.292MIT