TeslaMate MCP Server
Allows querying Tesla vehicle data and analytics from a TeslaMate database, including driving statistics, charging history, battery health, efficiency metrics, and location analytics.
Click on "Install 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 current battery level and range?"
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 Server
A Model Context Protocol (MCP) server that provides access to your TeslaMate database, allowing AI assistants to query Tesla vehicle data and analytics.

Overview
This MCP server connects to your TeslaMate PostgreSQL database and exposes various tools to retrieve Tesla vehicle information, driving statistics, charging data, battery health, efficiency metrics, and location analytics. It's designed to work with MCP-compatible AI assistants like Claude Desktop, enabling natural language queries about your Tesla data.
Related MCP server: PostgreSQL MCP Server
Prerequisites
TeslaMate running with a PostgreSQL database
Python 3.11 or higher
Access to your TeslaMate database
Installation
Option 1: Local Installation
Clone this repository:
git clone https://github.com/yourusername/teslamate-mcp.git cd teslamate-mcpInstall dependencies using uv (recommended):
uv syncOr using pip:
pip install -r requirements.txtCreate a
.envfile in the project root:DATABASE_URL=postgresql://username:password@hostname:port/teslamate
Option 2: Docker Deployment (Remote Access)
For remote deployment using Docker. Quick start:
# Clone and navigate to the repository
git clone https://github.com/yourusername/teslamate-mcp.git
cd teslamate-mcp
# Run the deployment script
./deploy.sh deploy
# Or manually:
cp env.example .env
# Edit .env with your database credentials
docker-compose up -dThe remote server will be available at:
Streamable HTTP:
http://localhost:8888/mcp
Configuring Authentication (Optional)
To secure your remote MCP server with bearer token authentication:
Set a bearer token in your
.envfile:AUTH_TOKEN=your-secret-bearer-token-hereGenerate a secure token:
# Use the provided token generator python3 generate_token.py # Or generate manually with openssl openssl rand -base64 32 # Or use any other method to create a secure random stringWhen connecting from MCP clients, include the Authorization header:
{ "mcpServers": { "teslamate-remote": { "url": "http://your-server:8888/mcp", "transport": "streamable_http", "headers": { "Authorization": "Bearer your-secret-bearer-token-here" } } } }Or use curl for testing:
curl -H "Authorization: Bearer your-secret-bearer-token-here" \ http://localhost:8888/mcp
Security Considerations
Use HTTPS in production: Bearer tokens are sent in plain text. Always use HTTPS/TLS in production environments.
Strong tokens: Use long, random tokens (at least 32 characters).
Environment variables: Never commit tokens to version control. Use environment variables or secrets management.
Network security: Consider using a VPN or restricting access by IP address for additional security.
Token rotation: Regularly rotate your bearer tokens.
Available Tools
The MCP server provides 20 tools for querying your TeslaMate data:
Pre-defined Query Tools
get_basic_car_information- Basic vehicle details (VIN, model, name, color, etc.)get_current_car_status- Current state, location, battery level, and temperatureget_software_update_history- Timeline of software updatesget_battery_health_summary- Battery degradation and health metricsget_battery_degradation_over_time- Historical battery capacity trendsget_daily_battery_usage_patterns- Daily battery consumption patternsget_tire_pressure_weekly_trends- Tire pressure history and trendsget_monthly_driving_summary- Monthly distance, efficiency, and driving timeget_daily_driving_patterns- Daily driving habits and patternsget_longest_drives_by_distance- Top drives by distance with detailsget_total_distance_and_efficiency- Overall driving statisticsget_drive_summary_per_day- Daily drive summariesget_efficiency_by_month_and_temperature- Efficiency analysis by temperatureget_average_efficiency_by_temperature- Temperature impact on efficiencyget_unusual_power_consumption- Anomalous power usage detectionget_charging_by_location- Charging statistics by locationget_all_charging_sessions_summary- Complete charging history summaryget_most_visited_locations- Frequently visited places
Custom Query Tools
get_database_schema- Returns complete database schema (tables, columns, data types)run_sql- Execute custom SELECT queries with safety validationOnly SELECT statements allowed
Prevents DROP, CREATE, INSERT, UPDATE, DELETE, ALTER, etc.
Blocks multiple statement execution
Safely handles strings and comments
Configuration
Environment Variables
DATABASE_URL: PostgreSQL connection string for your TeslaMate database
MCP Client Configuration
To use this server with Claude Desktop, add the following to your MCP configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Local Configuration (stdio transport)
{
"mcpServers": {
"teslamate": {
"command": "uv",
"args": ["run", "python", "/path/to/teslamate-mcp/main.py"],
"env": {
"DATABASE_URL": "postgresql://username:password@hostname:port/teslamate"
}
}
}
}Remote Configuration (streamable HTTP transport)
For connecting to a remote server:
{
"mcpServers": {
"TeslaMate": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://your-private-server:8888/mcp",
"--allow-http"
]
}
}
}With authentication enabled:
{
"mcpServers": {
"TeslaMate": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://your-private-server:8888/mcp",
"--allow-http",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer <secret bearer token>"
}
}
}
}Usage
Running the Server (STDIO)
uv run python main.pyExample Queries
Once configured with an MCP client, you can ask natural language questions organized by category:
Basic Vehicle Information
"What's my Tesla's basic information?"
"Show me my current car status"
"What software updates has my Tesla received?"
Battery and Health
"How is my battery health?"
"Show me battery degradation over time"
"What are my daily battery usage patterns?"
"How are my tire pressures trending?"
Driving Analytics
"Show me my monthly driving summary"
"What are my daily driving patterns?"
"What are my longest drives by distance?"
"What's my total distance driven and efficiency?"
Efficiency Analysis
"How does temperature affect my efficiency?"
"Show me efficiency trends by month and temperature"
"Are there any unusual power consumption patterns?"
Charging and Location Data
"Where do I charge most frequently?"
"Show me all my charging sessions summary"
"What are my most visited locations?"
Custom SQL Queries
"Show me the database schema"
"Run a SQL query to find drives longer than 100km"
"Query the average charging power by location"
"Find all charging sessions at superchargers"
Note: The run_sql tool only allows SELECT queries. All data modification operations (INSERT, UPDATE, DELETE, DROP, etc.) are strictly forbidden for safety.
Adding New Queries
Create a new SQL file in the
queries/directoryAdd a corresponding tool function in
main.pyFollow the existing pattern for error handling and database connections
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
TeslaMate - Tesla data logging software
Model Context Protocol - Protocol for AI-tool integration
For bugs and feature requests, please open an issue on GitHub.
Available Tools
18 toolsget_all_charging_sessions_summaryA
Get the summary of all charging sessions for each car.
| 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?
There are no annotations, so the description carries the burden. It clearly states the operation is a 'Get' (read-only) and defines the scope ('all charging sessions', 'for each car'). It does not mention response shape, but an output schema exists. It provides minimal but non-misleading 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?
The description is a single sentence, directly states the purpose, and contains no fluff or redundant content. It is front-loaded and easily parsed.
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 no-parameter read-only summary tool with an output schema, the description is largely sufficient. It could be slightly richer by noting aggregation or grouping behavior, but the core needs are covered.
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?
This tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics because there are none, and the schema is trivially complete.
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 specifies a clear action ('Get') and a clear resource ('the summary of all charging sessions for each car'). It distinguishes itself from sibling tools by focusing on the aggregate summary per car, unlike get_charging_by_location or get_battery_health_summary.
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 usage is implied: use this tool when you need a summary of all charging sessions across each car. However, it does not explicitly mention when to prefer this over alternatives or any exclusions, so it only barely meets the 'implied usage' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_average_efficiency_by_temperatureB
Get the average efficiency by temperature for each car.
| 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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether this is a read-only operation, what time period the average covers, or how temperature is defined, offering minimal behavioral insight.
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 that states the action and target without any extraneous words. It is appropriately sized for the tool's simplicity.
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 no parameters and an output schema present, the description is minimally viable. However, it lacks clarity on the data scope (e.g., all time vs. a specific period) and does not differentiate from similar siblings like 'get_efficiency_by_month_and_temperature', leaving moderate gaps.
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 has zero parameters, so the input schema fully covers parameter semantics. According to the rubric, 0 params warrants a baseline of 4, and there is no room for the description to add parameter-specific detail.
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 uses a clear verb-resource structure: 'Get the average efficiency by temperature for each car.' It is specific about the resource and grouping, but does not explicitly distinguish from the similar sibling 'get_efficiency_by_month_and_temperature', so it loses a point for lack of 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of exclusions, prerequisites, or comparison with sibling tools, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_basic_car_informationB
Get the basic car information for each car.
| 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?
Since there are no annotations, the description carries the full burden. It implies a read-only operation through 'Get' and adds the behavioral detail that results are per car ('for each car'). However, it does not disclose whether the operation is expensive, whether it returns aggregated data, or any other traits. The basic safety profile is clear, but additional context is 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?
The description is a single sentence with no unnecessary words. However, it is under-specified, which slightly detracts from its overall usefulness. Still, as a concise statement, it earns a good score.
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 tool's simplicity (no parameters) and the presence of an output schema, the description does not need to explain return values. The phrase 'basic car information for each car' is sufficient when combined with the output schema, which likely defines the fields. The main gap is sibling differentiation, but that is more related to usage guidelines.
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 has zero parameters, so the baseline is 4. The description adds no parameter information, but no parameters exist, so there is no gap to fill. The schema already confirms no inputs are required.
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 clearly states the verb 'Get' and the resource 'basic car information' for each car. It is specific enough to understand the action, but it does not distinguish from sibling tools like get_current_car_status, which could also be considered basic information. The phrase 'for each car' additionally clarifies the plural scope.
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 provides no guidance on when to use this tool versus alternatives. It does not mention any exclusions or scenarios where a sibling tool would be more appropriate. The agent is left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_battery_degradation_over_timeA
Get the battery degradation over time for each car.
| 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 provided, the description carries the full burden of behavioral disclosure. It only states the operation without revealing details such as the time range, aggregation method, or any performance implications. The word 'Get' implies read-only but does not explicitly confirm it.
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 concise sentence with no redundant words. It is immediately understandable and appropriately sized for a tool with no parameters and an output schema.
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 that an output schema exists, the description does not need to explain return values. However, the lack of differentiation from similar sibling tools and the absence of behavioral context make the description less complete than it could be for effective tool selection.
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 has zero parameters, so the baseline is 4 even with no parameter-specific information. The description adds a minor scope detail ('for each car') but does not need to elaborate further since there is nothing to clarify.
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 uses a specific verb ('Get') and clearly identifies the resource ('battery degradation over time') and scope ('for each car'). This effectively distinguishes it from sibling tools like 'get_battery_health_summary' by implying a temporal component.
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 provides no guidance on when to use this tool versus alternatives such as get_battery_health_summary or get_daily_battery_usage_patterns. It lacks any mention of exclusions or preferred contexts, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_battery_health_summaryA
Get the battery health summary for each car.
| 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?
No annotations are provided, so the description must disclose behavior itself. It implies a read operation via 'get' but provides no details on authorization, return format, side effects, or edge cases. This adds little beyond the tool name.
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 sentence, concise and front-loaded. Every word contributes to understanding the tool's purpose, 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?
Given the tool's simplicity (no parameters) and presence of an output schema, the description is largely complete. However, 'for each car' is slightly ambiguous about scope (e.g., user's cars vs all cars), which is a minor gap.
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 has zero parameters, so the schema is fully covered trivially. Baseline for 0 parameters is 4, and no parameter explanation is needed.
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 clearly states the action 'Get', the resource 'battery health summary', and scope 'for each car'. It distinguishes from siblings like 'get_battery_degradation_over_time' by focusing on a summary rather than historical trends.
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 provided on when to use this tool vs alternatives. The description is purely a purpose statement with no mention of use cases, prerequisites, or exclusions, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_charging_by_locationC
Get the charging by location for each car.
| 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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without revealing what is returned, whether it is aggregated, or any side effects. The phrase 'for each car' implies per-car granularity, but this is minimal.
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 short sentence, which is concise, but it is under-specified. It lacks necessary context to be fully useful, so it is not maximally efficient; it trades completeness for brevity.
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?
Despite having an output schema and no parameters, the description is too vague given the context of many sibling tools. It does not explain what 'charging by location' means, what units or aggregations are returned, or how it differs from related charging summaries.
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 has zero parameters, and the schema is empty, which gives a baseline of 4. The description adds no parameter information, but none is needed since there are no parameters.
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 uses a specific verb ('Get') and identifies the resource ('charging by location for each car'). It clearly states what the tool does, though it doesn't explicitly differentiate from siblings like get_all_charging_sessions_summary, which might overlap in scope.
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 provided about when to use this tool versus alternatives. The description does not mention any exclusions, prerequisites, or context for selecting it among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_car_statusB
Get the current car status for each car.
| 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. It implies a read-only operation but does not disclose what 'car status' includes, whether it returns data for all cars simultaneously, or any other behavior. The description is too bare to provide meaningful transparency.
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 sentence and front-loaded, but it is under-specified. While concise, it lacks enough detail to be useful beyond the tool name. It is not overly verbose, but also does not earn full marks for effective structure.
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?
Complexity is low (zero params, output schema exists), so the description needn't explain return values. However, 'current car status' is ambiguous and could benefit from a brief definition of what status fields are included. The description is adequate for a simple getter but leaves important context 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?
There are zero parameters, so the schema is fully covered. Per calibration, a baseline of 4 is appropriate since there is no parameter meaning to add.
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 clearly states a specific verb ('Get') and resource ('current car status') with a scope ('for each car'). It is distinct from siblings like 'get_basic_car_information' or 'get_battery_health_summary', though it doesn't explicitly differentiate itself.
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 provided on when to use this tool vs. alternatives. The description does not mention any exclusions, prerequisites, or context in which this tool is preferred over sibling get_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_battery_usage_patternsA
Get the daily battery usage patterns for each car.
| 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?
No annotations are provided, so the description carries the full burden. It implies a read-only operation via 'Get', but discloses no additional behavior such as data aggregation, time range, or any assumptions. It adds no context beyond what the name already suggests.
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 filler. It states the verb and resource directly, achieving maximum conciseness without sacrificing 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?
The tool is simple (0 params) and has an output schema, so return values are defined elsewhere. However, the description lacks context on what 'usage patterns' entails and how it differs from related analytics tools. It is minimally viable but could add a sentence of context.
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 has 0 parameters, so there is no parameter schema to elaborate. The baseline for 0 params is 4; the description adds no parameter-specific semantics, but none are needed.
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 uses a specific verb 'Get' and names a clear resource 'daily battery usage patterns for each car'. It distinguishes from sibling tools like get_battery_health_summary and get_battery_degradation_over_time by focusing on daily usage patterns rather than health or degradation.
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 provided on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or contrast with siblings like get_daily_driving_patterns or get_battery_health_summary. The usage context is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_driving_patternsB
Get the daily driving patterns for each car.
| 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?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It merely states the retrieval action without addressing permissions, data aggregation, time ranges, or any other behavioral traits. The output schema covers return format, but the description adds no transparency beyond the basic function.
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 concise sentence with no wasted words. It is front-loaded and easily parsed, making it appropriately sized for a simple parameterless tool.
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?
Although the tool is simple and an output schema exists, the description is too terse to clarify what constitutes 'daily driving patterns' or how it differs from related metrics like drive summaries or battery usage patterns. This makes it incomplete for an agent choosing among 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?
The input schema has zero parameters, and the baseline for 0 params is 4. The description adds no parameter information, but none is needed given the empty 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 description clearly states the tool gets 'daily driving patterns' for 'each car', using a specific verb and resource. However, it does not differentiate from similar siblings like get_daily_battery_usage_patterns or get_drive_summary_per_day, leaving the exact meaning of 'patterns' 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?
No guidance is given on when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or exclusions. With over a dozen sibling tools covering related driving/efficiency metrics, the lack of direction is a notable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_drive_summary_per_dayA
Get the drive summary per day for each car.
| 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 of disclosing behavior. It only says 'Get' which implies read-only, but does not reveal aggregation details, return content, or any constraints. This is insufficient for a tool with zero safety metadata.
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 entire description is one clear sentence with no wasted words. It is appropriately sized and front-loaded with the core action and resource.
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 tool has no parameters and an output schema exists, the description provides the basic function. However, it lacks context about what constitutes a 'drive summary' and does not differentiate from related tools, making it only minimally 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?
The tool has zero parameters and an empty schema, so the baseline is 4. The description does not need to add parameter information, and it does not introduce any param-related confusion.
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 clearly states the tool retrieves a drive summary per day for each car, using a specific verb and resource. It distinguishes itself from sibling tools like monthly summaries or daily patterns by emphasizing 'per day'.
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 provided on when to use this tool versus alternatives such as get_daily_driving_patterns or get_monthly_driving_summary. The description leaves the contextual selection entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_efficiency_by_month_and_temperatureA
Get the efficiency by month and temperature for each car.
| 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?
No annotations are provided, so the description carries the full burden. It merely restates the purpose and discloses no behavioral traits such as read-only status, data scope, aggregation logic, or limitations. The description adds no context beyond the basic function.
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 sentence of 11 words, front-loaded with the verb and clearly structured. It contains no filler or redundancy, every word adds meaning.
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 is simple with zero parameters and an output schema exists, so return values are covered. The description adequately conveys the core purpose and scope. It could benefit from noting data range or aggregation details, but these are not essential for invocation given the low complexity.
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 has zero parameters and the schema is empty, so the baseline is 4. The description adds no parameter details, which is acceptable because there are no parameters to explain. The mention of 'by month and temperature' refers to output dimensions, not input parameters.
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 uses a specific verb 'Get' and clearly identifies the resource 'efficiency' along with the dimensions 'month' and 'temperature' and scope 'for each car'. This distinguishes it from sibling tools like get_average_efficiency_by_temperature, which is aggregated, and get_monthly_driving_summary, which is about driving summaries.
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 provides no guidance on when to use this tool versus alternatives, no mention of context, and no exclusions. It does not say whether to prefer this over get_average_efficiency_by_temperature for per-car details or when to use it. The user must rely on the tool name alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_longest_drives_by_distanceB
Get the longest drives by distance for each car.
| 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 provided, the description carries full responsibility for behavioral disclosure. It only states the high-level action and grouping ('for each car'), but fails to explain key behaviors such as whether it returns a single drive per car or multiple, how 'longest' is determined (e.g., sorting, limit), or whether it is read-only. Minimal extra behavioral context is offered.
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 concise sentence that front-loads the primary action and object. Every word contributes to the meaning, with no redundancy or 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?
Given the tool's simplicity (no parameters) and the presence of an output schema, the description provides sufficient high-level context. It does not need to explain return values since the schema does that. The only minor ambiguity is whether 'longest drives' is singular or plural per car, but this is likely resolved 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 has zero parameters, so the description cannot add parameter semantics. The schema is empty with 100% coverage (vacuously). Per the rubric, a baseline of 4 is appropriate when there are no parameters to explain.
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 clearly states the tool's function with a specific verb ('Get') and resource ('longest drives by distance for each car'). It is distinct from sibling tools like get_drive_summary_per_day or get_total_distance_and_efficiency, though it does not explicitly name alternatives. The core purpose is unambiguous.
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 provides no guidance on when to use this tool versus the many sibling get_* tools. It does not mention any context, prerequisites, or alternatives. The usage is only implied by the name and description, not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monthly_driving_summaryA
Get the monthly driving summary for each car.
| 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?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states the basic action and does not mention aggregation details, time periods, return format nuances, or any side effects. For a read-only summary tool, this is minimal but lacks depth.
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 concise sentence that is front-loaded with the action and resource. Every word earns its place without unnecessary detail.
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 tool with an output schema, the description adequately sets expectations. It clearly names the output ('monthly driving summary') and scope ('each car'). It lacks usage context, but that is covered under the usage guidelines dimension.
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 has zero parameters, so the schema trivially covers all inputs. The description doesn't need to add parameter semantics, and the baseline 4 applies as no parameters exist to explain.
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 clearly states the tool's function with a specific verb ('Get') and resource ('monthly driving summary') scoped to 'each car'. This distinguishes it from sibling tools like get_drive_summary_per_day (daily) and get_daily_driving_patterns.
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 provided on when to use this tool versus alternatives. The description only states what it does, with no mention of suitable contexts, exclusions, or comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_most_visited_locationsA
Get the most visited locations for each car.
| 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 provided, the description carries the full burden of behavioral disclosure. It conveys a read-only intent but does not explain how 'most visited' is computed (e.g., by frequency vs. duration) or any grouping or sorting behavior beyond 'for each car.'
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, clear sentence with no filler or redundant phrasing. It is front-loaded and directly communicates the core purpose.
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 is simple with no parameters and has an output schema (per context signals), so the description need not explain return values. However, the phrase 'most visited' is ambiguous without specifying whether it refers to visit frequency, dwell time, or another metric, leaving a gap for an agent invoking the 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?
The tool has zero parameters, so the schema already fully covers the input side. The description does not need to add parameter details, and adding any would be redundant. Baseline 4 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?
The description uses a specific verb 'Get' and clearly identifies the resource: 'most visited locations for each car.' This distinguishes it from sibling tools like get_charging_by_location or get_daily_driving_patterns, which target different aspects of driving 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 provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, so an agent has no basis for selecting it over similar location-based tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_software_update_historyA
Get the software update history for each car.
| 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?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. While 'Get' implies a safe read operation, the description does not explain return format, potential size, or any other behavioral traits beyond the basic function. It adds little context beyond the name itself.
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 exactly one sentence, front-loaded with the verb and resource, and contains no filler or redundant information. Every word earns its place, making it highly concise and well-structured.
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 tool with an output schema available, the description is sufficiently complete to convey the core purpose. It does not need to explain return values since the output schema covers that, though it could mention scope or aggregation details if any exist.
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 has zero parameters, so the description does not need to explain any parameter semantics. The baseline for zero parameters is 4, and the description does not introduce any confusion about inputs.
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 clearly states a specific action ('Get') and a distinct resource ('software update history for each car'), which differentiates it from all sibling tools that focus on driving, charging, or efficiency metrics. There is no ambiguity about what this tool does.
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 provides no explicit guidance on when to use this tool vs alternatives, but the unique focus on software updates makes the usage context implicitly clear. There are no exclusions or alternative tool mentions, so the guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tire_pressure_weekly_trendsA
Get the tire pressure weekly trends for each car.
| 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 provided, the description carries the full burden of behavioral disclosure. It merely restates the tool's purpose without detailing the return format, aggregation method, time period, or any other behavioral trait. It is not misleading but adds little beyond the tool name.
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, focused sentence with no redundant words. It is front-loaded with the key action ('get') and resource, making it easy to scan. 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?
The tool has no parameters and an output schema exists, so the description need not explain return values. However, it lacks context about what 'weekly trends' entails (e.g., time window, units, vehicle grouping). This is a minimally viable description but leaves some gaps for an agent to disambiguate.
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 has zero parameters, and the input schema is empty (100% coverage). Per the rubric, the baseline is 4 when there are no parameters, and the description does not need to add parameter details. The description adds no parameter-specific information, but none is needed.
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 clearly states the tool's function: 'Get the tire pressure weekly trends for each car.' It uses a specific verb ('get'), identifies the resource ('tire pressure weekly trends'), and scopes it to 'each car.' This distinguishes it from sibling tools focused on battery, charging, or driving patterns.
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 provides no guidance on when to use this tool over alternatives or any exclusion criteria. While the sibling tools cover different domains, no explicit usage context is given, leaving the agent to infer applicability 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.
get_total_distance_and_efficiencyA
Get the total distance and efficiency for each car.
| 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?
Without annotations, the description carries the burden of disclosing behavioral traits. The verb 'Get' implies a safe read-only operation, but it does not explicitly state this or mention any other side effects, data freshness, or limitations. This is minimal transparency.
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, focused sentence that directly states the tool's purpose. It contains no unnecessary words or repetition, making it highly efficient for a zero-parameter tool.
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 that the tool has no parameters and an output schema exists, the description sufficiently explains what the tool returns (total distance and efficiency per car). The lack of context about units or use cases is a minor gap, but the core is covered.
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?
With 0 parameters, the baseline per the rubric is 4. The description correctly implies that no input is needed, as it refers to 'each car' without requiring filtering inputs. No further parameter semantics are necessary.
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 clearly states the tool's function: 'Get the total distance and efficiency for each car.' It uses a specific verb ('get') and resource ('total distance and efficiency for each car'), which distinguishes it from sibling tools that focus on other metrics like temperature or location.
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 provides no guidance on when to use this tool versus alternatives. It does not mention any distinguishing use case, prerequisites, or mention of when not to use it. Sibling tools cover similar analytics, but no comparison or context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unusual_power_consumptionB
Get the unusual power consumption for each car.
| 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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the purpose and does not explain what constitutes 'unusual', the time window or aggregation logic, the units, or any assumptions about the returned values. Has output schema partially mitigates this, but the description itself is behaviorally opaque.
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, clear sentence with no filler. It is appropriately short for a parameterless tool, though adding a brief definition of 'unusual' would improve clarity without sacrificing 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?
For a zero-parameter read operation with an output schema, the description is minimally viable. However, it lacks any definition of what makes power consumption 'unusual' and does not clarify how this tool differs from related efficiency metrics, leaving some ambiguity for an agent choosing among 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?
The tool has zero parameters, so the description gains full marks for not needing to explain parameter semantics. The baseline of 4 applies because there are no parameter details to add.
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 uses a specific verb ('Get') and names the exact resource ('unusual power consumption for each car'). It clearly distinguishes itself from sibling tools focused on efficiency or battery summaries, although the term 'unusual' is 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?
The intended use is implied: call this when you need unusual power consumption data per car. There are no explicit when-to-use or when-not-to-use instructions, and no alternative tools are mentioned, but the tool name and description make the basic use case obvious.
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. Dates show when Glama detected each change.
18 tool updates
v0.1.0- First observed
get_all_charging_sessions_summary - First observed
get_average_efficiency_by_temperature - First observed
get_basic_car_information - First observed
get_battery_degradation_over_time - First observed
get_battery_health_summary - First observed
get_charging_by_location - First observed
get_current_car_status - First observed
get_daily_battery_usage_patterns - First observed
get_daily_driving_patterns - First observed
get_drive_summary_per_day - First observed
get_efficiency_by_month_and_temperature - First observed
get_longest_drives_by_distance - First observed
get_monthly_driving_summary - First observed
get_most_visited_locations - First observed
get_software_update_history - First observed
get_tire_pressure_weekly_trends - First observed
get_total_distance_and_efficiency - First observed
get_unusual_power_consumption
TDQS
Each tool targets a specific metric or report (charging, efficiency, battery, driving, locations, etc.), and the descriptions are clear. However, a few tools like get_daily_driving_patterns and get_drive_summary_per_day could seem overlapping at first glance, though they cover different time granularities and aspects.
All 18 tools follow a strict get_<metric> naming convention with no deviations. The pattern is uniform and predictable, making it easy to understand the tool set at a glance.
With 18 tools, the server is slightly above the typical 3-15 range, but the count is justified by the breadth of Tesla telemetry data covered. Each tool provides a distinct report, and there are no obvious redundant tools.
The server covers a wide range of analytics and summarization reports for vehicle data. As a read-only reporting server, it lacks action-based tools, which is acceptable. Some minor gaps exist, such as raw individual charging/driving sessions, but comprehensive summaries and trends are provided.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Control your Tesla from your AI assistant - climate, charging, access, and security.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Unofficial integration! ## ✨ Key Features ### 💰 Financial Intelligence - **Smart Charging Cost An…
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to interact with PostgreSQL databases using natural language queries, providing secure read-only access to database schemas and SQL translation capabilities.613-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with PostgreSQL databases through natural language queries, schema inspection, and safe SQL execution.101-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to safely interact with PostgreSQL databases, perform queries, inspect schemas, and analyze query performance.2-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to execute SQL queries and inspect PostgreSQL database schema.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mikeysrecipes/teslamate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server