Skip to main content
Glama
mikeysrecipes

TeslaMate MCP Server

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.

teslamate-mcp

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

  1. Clone this repository:

    git clone https://github.com/yourusername/teslamate-mcp.git
    cd teslamate-mcp
  2. Install dependencies using uv (recommended):

    uv sync

    Or using pip:

    pip install -r requirements.txt
  3. Create a .env file 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 -d

The 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:

  1. Set a bearer token in your .env file:

    AUTH_TOKEN=your-secret-bearer-token-here

    Generate 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 string
  2. When 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"
          }
        }
      }
    }
  3. 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

  1. get_basic_car_information - Basic vehicle details (VIN, model, name, color, etc.)

  2. get_current_car_status - Current state, location, battery level, and temperature

  3. get_software_update_history - Timeline of software updates

  4. get_battery_health_summary - Battery degradation and health metrics

  5. get_battery_degradation_over_time - Historical battery capacity trends

  6. get_daily_battery_usage_patterns - Daily battery consumption patterns

  7. get_tire_pressure_weekly_trends - Tire pressure history and trends

  8. get_monthly_driving_summary - Monthly distance, efficiency, and driving time

  9. get_daily_driving_patterns - Daily driving habits and patterns

  10. get_longest_drives_by_distance - Top drives by distance with details

  11. get_total_distance_and_efficiency - Overall driving statistics

  12. get_drive_summary_per_day - Daily drive summaries

  13. get_efficiency_by_month_and_temperature - Efficiency analysis by temperature

  14. get_average_efficiency_by_temperature - Temperature impact on efficiency

  15. get_unusual_power_consumption - Anomalous power usage detection

  16. get_charging_by_location - Charging statistics by location

  17. get_all_charging_sessions_summary - Complete charging history summary

  18. get_most_visited_locations - Frequently visited places

Custom Query Tools

  1. get_database_schema - Returns complete database schema (tables, columns, data types)

  2. run_sql - Execute custom SELECT queries with safety validation

    • Only 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.py

Example 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

  1. Create a new SQL file in the queries/ directory

  2. Add a corresponding tool function in main.py

  3. Follow 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

For bugs and feature requests, please open an issue on GitHub.

Available Tools

18 tools
get_all_charging_sessions_summaryA

Get the summary of all charging sessions for each car.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_total_distance_and_efficiencyA

Get the total distance and efficiency for each car.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 18 tool updatesv0.1.0
    • First observedget_all_charging_sessions_summary
    • First observedget_average_efficiency_by_temperature
    • First observedget_basic_car_information
    • First observedget_battery_degradation_over_time
    • First observedget_battery_health_summary
    • First observedget_charging_by_location
    • First observedget_current_car_status
    • First observedget_daily_battery_usage_patterns
    • First observedget_daily_driving_patterns
    • First observedget_drive_summary_per_day
    • First observedget_efficiency_by_month_and_temperature
    • First observedget_longest_drives_by_distance
    • First observedget_monthly_driving_summary
    • First observedget_most_visited_locations
    • First observedget_software_update_history
    • First observedget_tire_pressure_weekly_trends
    • First observedget_total_distance_and_efficiency
    • First observedget_unusual_power_consumption

TDQS

A3.5/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with PostgreSQL databases using natural language queries, providing secure read-only access to database schemas and SQL translation capabilities.
    6
    13
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to safely interact with PostgreSQL databases, perform queries, inspect schemas, and analyze query performance.
    2
    -

Latest Blog Posts

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