Skip to main content
Glama

@striderlabs/mcp-hertz

A Model Context Protocol (MCP) connector for the Hertz car rental service. This connector enables AI assistants (such as Claude) to search for vehicles, manage reservations, look up locations, retrieve rental policies, and check Gold Plus Rewards loyalty status — all through Hertz's website via headless browser automation.


Overview

This connector uses Playwright to drive a headless Chromium browser against hertz.com. It exposes 10 MCP tools that cover the full car rental workflow:

  • Search available vehicles

  • Get detailed vehicle and rate information

  • Find nearby Hertz locations

  • Create, view, modify, and cancel reservations

  • Retrieve rental policies and insurance options

  • Add optional extras (GPS, child seats, etc.)

  • Check Gold Plus Rewards loyalty status


Related MCP server: mcp-hilton

Prerequisites

  • Node.js 18 or higher

  • npm 9 or higher

  • Internet access to reach hertz.com


Installation

From the package directory

npm install
npx playwright install chromium
npm run build

As a global CLI

npm install -g @striderlabs/mcp-hertz
npx playwright install chromium

Configuration

No API keys or environment variables are required. The connector uses public-facing Hertz web pages. Network access to https://www.hertz.com must be available from the host running the connector.

Optional environment variables that may influence Playwright behavior:

Variable

Description

PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH

Path to a custom Chromium binary

HTTP_PROXY / HTTPS_PROXY

Proxy server for outbound requests


Running the Server

# Development (TypeScript source)
npm run dev

# Production (compiled)
npm run build
npm start

The server communicates over stdio using the MCP protocol and is designed to be launched by an MCP host such as Claude Desktop.


Claude Desktop Configuration

Add the following to your Claude Desktop claude_desktop_config.json:

{
  "mcpServers": {
    "hertz": {
      "command": "node",
      "args": ["/path/to/mcp-hertz/dist/index.js"]
    }
  }
}

Or, if installed globally:

{
  "mcpServers": {
    "hertz": {
      "command": "mcp-hertz"
    }
  }
}

Tools

1. search_vehicles

Search for available Hertz vehicles at a given location and date range.

Parameter

Type

Required

Description

pickup_location

string

Yes

City name, airport code (e.g. LAX), or address

dropoff_location

string

No

Return location if different from pickup

pickup_date

string

Yes

ISO date YYYY-MM-DD

pickup_time

string

Yes

24-hour time HH:MM

dropoff_date

string

Yes

ISO date YYYY-MM-DD

dropoff_time

string

Yes

24-hour time HH:MM

vehicle_class

enum

No

Economy, Compact, Midsize, Standard, Fullsize, Premium, Luxury, SUV, Van, Truck

driver_age

number

No

Driver age in years (default: 25)

discount_code

string

No

Promotional or discount code

Returns: Array of VehicleResult objects with make/model, class, transmission, passengers, bags, daily rate, total rate, features, and availability.


2. get_vehicle_details

Retrieve detailed information and rate breakdown for a specific vehicle.

Parameter

Type

Required

Description

vehicle_id

string

Yes

Vehicle ID from search_vehicles results

rate_code

string

No

Rate code for specific pricing

Returns: VehicleResult extended with rate_details (base rate, taxes, total, cancellation policy).


3. get_locations

Find Hertz rental locations near a city, airport, or set of coordinates.

Parameter

Type

Required

Description

query

string

Yes

City name, airport code (e.g. ORD), or street address

type

enum

No

airport, city, or all (default: all)

latitude

number

No

Latitude for proximity search

longitude

number

No

Longitude for proximity search

radius_miles

number

No

Search radius in miles (default: 25)

Returns: Array of Location objects with name, address, city, state, phone, hours, and airport info.


4. create_reservation

Create a new Hertz rental reservation.

Parameter

Type

Required

Description

vehicle_id

string

Yes

Vehicle ID from search results

rate_code

string

No

Rate code for pricing

pickup_location_id

string

Yes

Location ID for pickup

dropoff_location_id

string

No

Location ID for return (defaults to pickup)

pickup_datetime

string

Yes

ISO datetime e.g. 2025-06-15T10:00:00

dropoff_datetime

string

Yes

ISO datetime e.g. 2025-06-20T10:00:00

driver_first_name

string

Yes

Driver's first name

driver_last_name

string

Yes

Driver's last name

driver_email

string

Yes

Driver's email address

driver_phone

string

Yes

Driver's phone number

driver_age

number

No

Driver age in years

discount_code

string

No

Promotional or discount code

cdp_number

string

No

Corporate Discount Program number

loyalty_number

string

No

Hertz Gold Plus Rewards member number

Returns: Reservation object with confirmation number, status, vehicle, locations, dates, driver info, and total cost.


5. get_reservation

Look up an existing reservation by confirmation number and last name.

Parameter

Type

Required

Description

confirmation_number

string

Yes

Hertz confirmation number

last_name

string

Yes

Driver's last name as on the reservation

Returns: Reservation object.


6. modify_reservation

Modify an existing reservation (dates, locations, or vehicle class).

Parameter

Type

Required

Description

confirmation_number

string

Yes

Hertz confirmation number

last_name

string

Yes

Driver's last name

new_pickup_datetime

string

No

New pickup date/time in ISO format

new_dropoff_datetime

string

No

New dropoff date/time in ISO format

new_pickup_location_id

string

No

New pickup location ID

new_dropoff_location_id

string

No

New dropoff location ID

new_vehicle_class

enum

No

New vehicle class preference

Returns: Updated Reservation object.


7. cancel_reservation

Cancel an existing reservation. Free cancellation is available up to 24 hours before the scheduled pickup.

Parameter

Type

Required

Description

confirmation_number

string

Yes

Hertz confirmation number

last_name

string

Yes

Driver's last name

reason

string

No

Optional reason for cancellation

Returns: Object with success boolean, message, and confirmation_number.


8. get_rental_policies

Retrieve Hertz rental policies, insurance options, and fee information.

Parameter

Type

Required

Description

location_id

string

No

Location ID for location-specific policies

vehicle_class

enum

No

Vehicle class for class-specific notes

country

string

No

Country code (default: US)

Returns: Policy object including minimum age requirements, fuel policy, mileage policy, insurance options, cancellation terms, accepted payment methods, and Gold Plus Rewards information.


9. add_extras

Add optional extras to an existing reservation.

Parameter

Type

Required

Description

confirmation_number

string

Yes

Hertz confirmation number

last_name

string

Yes

Driver's last name

extras

array

Yes

Array of { extra_id, quantity } objects

Available extra_id values:

ID

Name

Pricing

gps

Hertz NeverLost GPS

$12.99/day

child_seat

Child Safety Seat

$13.99/day

booster_seat

Booster Seat

$9.99/day

additional_driver

Additional Driver

$13.99/day

rsa_plus

Roadside Assistance Plus

$5.99/day

wifi

Wi-Fi Hotspot

$10.99/day

sirius_xm

SiriusXM Satellite Radio

$8.99 flat

ski_rack

Ski Rack

$29.99 flat

prepaid_fuel

Prepaid Fuel Option

$45.00 flat

Returns: Object with updated extras list and new total cost.


10. get_loyalty_status

Check Hertz Gold Plus Rewards loyalty status including tier, points balance, year-to-date rentals, and free day certificates.

Parameter

Type

Required

Description

member_id

string

No

Gold Plus Rewards member ID

email

string

No

Email address on the account

pin

string

Yes

Gold Plus Rewards PIN or password

Note: Either member_id or email must be provided along with pin.

Returns: LoyaltyStatus object with member ID, name, tier (Gold / Five Star / President's Circle / Platinum), points balance, rentals year-to-date, and free day certificate count.


Notes on Browser Automation

  • The connector launches a headless Chromium browser via Playwright for each tool call and closes it upon completion.

  • Playwright Chromium must be installed separately with npx playwright install chromium.

  • Each tool call makes a real network request to hertz.com. Response times depend on site performance (typically 5–30 seconds).

  • Hertz's website uses heavy JavaScript rendering. The connector waits for networkidle state before extracting data.

  • If the live site returns no parseable DOM data (e.g. due to a site redesign or anti-bot measures), several tools fall back to structured placeholder responses so that the calling agent can continue reasoning.

  • Do not use this connector to make real reservations with real payment information without understanding the full booking flow and Hertz's terms of service.


License

MIT

Available Tools

10 tools
add_extrasC

Add optional extras (GPS, child seats, additional drivers, roadside assistance, etc.) to an existing reservation.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmation_numberYes
last_nameYes
extrasYes

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 full burden. It states this is an additive operation but doesn't disclose behavioral traits like whether it requires payment, affects reservation totals, allows removal of extras, has rate limits, or returns confirmation details. This is inadequate for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It front-loads the core purpose and includes helpful examples without unnecessary elaboration.

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?

Given no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on mutation effects, error conditions, return values, and parameter usage, making it insufficient for reliable tool invocation in this context.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'optional extras' and examples, which loosely map to the 'extras' parameter, but doesn't explain 'confirmation_number' or 'last_name' semantics, nor details like extra ID formats or quantity constraints. Baseline is 3 as it adds some value but doesn't fully cover the 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 clearly states the action ('add') and target ('optional extras to an existing reservation'), with specific examples (GPS, child seats, etc.). It distinguishes from siblings like 'create_reservation' or 'modify_reservation' by focusing on extras, though it doesn't explicitly contrast with them.

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 implies usage for adding extras to an existing reservation but provides no guidance on when to use this versus alternatives like 'modify_reservation' (which might also handle extras), prerequisites (e.g., reservation must be active), or exclusions (e.g., cannot add after pickup).

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

cancel_reservationA

Cancel an existing Hertz reservation. Free cancellation is available up to 24 hours before pickup.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmation_numberYes
last_nameYes
reasonNoOptional cancellation reason

TDQS

A3.8/5.0
Behavior3/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 mentions the free cancellation policy, which is valuable context beyond basic functionality. However, it doesn't address other important behavioral aspects like whether cancellation is reversible, what confirmation is provided, or potential fees outside the 24-hour window, leaving significant gaps.

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

Conciseness5/5

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

The description is perfectly concise with two sentences that each serve distinct purposes: the first states the core function, the second provides critical usage context. There's no wasted verbiage, and information is front-loaded appropriately.

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's complexity (a destructive operation with no annotations and no output schema), the description provides basic purpose and timing context but lacks crucial information about return values, error conditions, authentication needs, and complete parameter documentation. It's minimally adequate but has clear gaps for a cancellation tool.

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

Parameters2/5

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

Schema description coverage is only 33% (only the 'reason' parameter has a description), and the tool description adds no parameter information beyond what's in the schema. For a tool with 3 parameters where 2 are completely undocumented in both schema and description, this is inadequate compensation for the low coverage.

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 specific action ('Cancel') and target resource ('an existing Hertz reservation'), distinguishing it from siblings like 'modify_reservation' or 'create_reservation'. It provides a precise verb+resource combination that leaves no ambiguity about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit timing guidance ('Free cancellation is available up to 24 hours before pickup'), which helps determine when to use this tool. However, it doesn't specify alternatives (e.g., when to use 'modify_reservation' instead) or mention prerequisites like authentication requirements, which would elevate it to a 5.

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

create_reservationC

Create a new Hertz car rental reservation. Requires vehicle selection, location details, dates, and driver information.

ParametersJSON Schema
NameRequiredDescriptionDefault
vehicle_idYesVehicle ID from search results
rate_codeNoRate code for pricing
pickup_location_idYesLocation ID for vehicle pickup
dropoff_location_idNoLocation ID for vehicle return
pickup_datetimeYesISO datetime for pickup, e.g. 2025-06-15T10:00:00
dropoff_datetimeYesISO datetime for return, e.g. 2025-06-20T10:00:00
driver_first_nameYes
driver_last_nameYes
driver_emailYes
driver_phoneYes
driver_ageNo
discount_codeNo
cdp_numberNoCorporate Discount Program number
loyalty_numberNoHertz Gold Plus Rewards member number

TDQS

C2.9/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 burden for behavioral disclosure. While it implies a write operation ('Create'), it doesn't specify whether this is a booking confirmation, a draft reservation, what permissions are needed, whether it's idempotent, what happens on failure, or what the response contains. For a mutation tool with 14 parameters, this is insufficient 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.

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core purpose. Every word contributes to understanding what the tool does, though it could benefit from additional context about behavioral aspects given the lack of annotations.

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?

For a complex reservation creation tool with 14 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address error conditions, response format, authentication requirements, or how this tool relates to the sibling tools in the system. The agent would need to guess about many important operational aspects.

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

Parameters3/5

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

The description mentions four parameter categories (vehicle selection, location details, dates, driver information) which map to some of the 14 parameters. With schema description coverage at 57%, the description adds some value by grouping parameters semantically, but doesn't fully compensate for the coverage gap or provide format details beyond what the schema already documents for most 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 clearly states the action ('Create a new Hertz car rental reservation') and specifies the resource type, making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'modify_reservation' or 'get_reservation' beyond the obvious creation vs. modification/retrieval distinction.

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 like 'modify_reservation' or 'cancel_reservation'. It lists required data fields but doesn't indicate prerequisites, dependencies, or appropriate contexts for invocation beyond the basic function.

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

get_locationsB

Search for Hertz rental locations near a city, airport, or coordinates. Returns location details including address, hours, and contact information.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesCity name, airport code (e.g. ORD), or street address
typeNoFilter location type
latitudeNoLatitude for proximity search
longitudeNoLongitude for proximity search
radius_milesNoSearch radius in miles, default 25

TDQS

B3.2/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 mentions the search functionality and return details, but lacks critical information such as authentication requirements, rate limits, error handling, or pagination behavior. For a search tool with multiple parameters, this is a significant gap in 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 concise and front-loaded, consisting of two efficient sentences that directly state the tool's purpose and output. Every sentence earns its place without redundancy, making it easy to understand quickly.

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?

Given the complexity of a search tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication, rate limits, or error handling, and lacks details on the return format beyond high-level categories. This leaves significant gaps for an AI agent to use the tool effectively.

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

Parameters3/5

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

The description adds minimal value beyond the input schema, which has 100% coverage. It mentions search criteria (city, airport, coordinates) and return details, but doesn't explain parameter interactions or provide additional context like default behaviors beyond the schema's 'radius_miles' description. With high schema coverage, the baseline score of 3 is appropriate.

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 searches for Hertz rental locations near specified criteria and returns location details. It specifies the verb 'search' and resource 'Hertz rental locations' with scope 'near a city, airport, or coordinates.' However, it doesn't explicitly differentiate from sibling tools like 'search_vehicles' or 'get_vehicle_details,' which prevents a perfect score.

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 implies usage by mentioning search criteria (city, airport, coordinates) and return details, but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'search_vehicles' or 'get_vehicle_details.' No exclusions or prerequisites are stated, leaving usage context somewhat vague.

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

get_loyalty_statusB

Check Hertz Gold Plus Rewards loyalty status including tier, points balance, and free day certificates.

ParametersJSON Schema
NameRequiredDescriptionDefault
member_idNoHertz Gold Plus Rewards member ID
emailNoEmail address on the Gold Plus account
pinYesGold Plus Rewards PIN or password

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 implies a read-only operation ('Check'), but doesn't explicitly state whether it's safe, requires authentication (beyond the PIN parameter), has rate limits, or what happens on errors. For a tool with authentication parameters and no annotations, this leaves significant behavioral gaps.

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, efficient sentence that front-loads the purpose and key details (tier, points, certificates). There's no wasted language or redundancy, making it easy to parse quickly. Every word contributes directly to understanding the tool's function.

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's moderate complexity (authentication parameters, no output schema), the description is minimally adequate. It covers what data is returned but lacks details on authentication requirements, error handling, or output format. Without annotations or an output schema, the description doesn't fully compensate for these gaps, leaving room for improvement in completeness.

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

Parameters3/5

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

The input schema has 100% description coverage, with clear documentation for all three parameters (member_id, email, pin). The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or usage tips. With high schema coverage, the baseline score of 3 is appropriate as the schema handles the heavy lifting.

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 specific action ('Check') and resource ('Hertz Gold Plus Rewards loyalty status'), listing the exact data returned (tier, points balance, free day certificates). It distinguishes itself from sibling tools like 'get_reservation' or 'get_vehicle_details' by focusing on loyalty program information rather than reservations or vehicles.

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 doesn't mention prerequisites (e.g., needing authentication via PIN), scenarios where it's appropriate (e.g., customer service inquiries), or exclusions (e.g., not for modifying loyalty data). With sibling tools like 'get_reservation' available, there's no differentiation in usage context.

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

get_rental_policiesC

Retrieve Hertz rental policies including age requirements, fuel policy, insurance options, cancellation terms, and available extras.

ParametersJSON Schema
NameRequiredDescriptionDefault
location_idNoLocation ID for location-specific policies
vehicle_classNo
countryNoCountry code, default US

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 full burden. It states 'retrieve' which implies a read operation, but doesn't disclose behavioral traits such as whether it requires authentication, rate limits, error handling, or what the return format looks like (e.g., structured data vs. text). For a tool with no annotations, this leaves significant gaps in understanding how it behaves.

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?

Single sentence, front-loaded with the core purpose, efficiently lists key policy aspects without redundancy. Every word earns its place by specifying what policies are included, making it appropriately sized and easy to scan.

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?

Given no annotations, no output schema, and 3 parameters with incomplete schema coverage, the description is inadequate. It doesn't explain return values, error cases, or behavioral context needed for a tool that retrieves complex policy data. For a read operation with potential variability based on inputs, more completeness is required to guide effective use.

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

Parameters3/5

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

Schema description coverage is 67% (2 out of 3 parameters have descriptions), with location_id and country documented but vehicle_class lacking a description. The description adds no specific parameter semantics beyond what the schema provides—it doesn't explain how location_id affects policies, what vehicle_class enums mean in context, or default behaviors for country. Baseline 3 is appropriate given moderate schema coverage.

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 'retrieve' and the resource 'Hertz rental policies', with specific examples of what policies are included (age requirements, fuel policy, etc.). It distinguishes from siblings like get_locations or get_vehicle_details by focusing on policies rather than locations or vehicle specs. However, it doesn't explicitly differentiate from get_reservation which might also involve policy details.

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 explicit guidance on when to use this tool versus alternatives like get_reservation (which might include policy info) or search_vehicles (which could relate to policies). The description implies usage for retrieving policy information, but lacks context on prerequisites, timing, or exclusions (e.g., when location-specific policies are needed).

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

get_reservationA

Look up an existing Hertz reservation by confirmation number and last name.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmation_numberYesHertz reservation confirmation number
last_nameYesDriver's last name as on the reservation

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It clearly indicates this is a read operation ('Look up'), which is helpful, but doesn't disclose other behavioral traits like authentication requirements, rate limits, error conditions, or what data is returned. It adds basic context but lacks operational details.

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?

Single sentence, zero waste. Every word earns its place: verb, resource, and required identifiers are front-loaded. No redundant information or fluff.

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 simple lookup tool with 2 parameters and 100% schema coverage, the description is adequate but minimal. No output schema exists, so the description doesn't explain return values (e.g., reservation details). With no annotations, it could benefit from more behavioral context, but it meets basic needs.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters. The description mentions the parameters but doesn't add meaningful semantics beyond what's in the schema (e.g., format examples, validation rules). Baseline 3 is appropriate when schema does the heavy lifting.

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 specific action ('Look up') and resource ('existing Hertz reservation'), and distinguishes it from siblings like 'create_reservation' or 'modify_reservation' by specifying it's for retrieval only. It precisely identifies the lookup method using confirmation number and last name.

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 implies usage context (when you have a confirmation number and last name to retrieve a reservation), but doesn't explicitly state when to use this versus alternatives like 'search_vehicles' or 'get_vehicle_details'. No exclusions or prerequisites are mentioned.

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

get_vehicle_detailsC

Get detailed information and pricing for a specific vehicle from search results.

ParametersJSON Schema
NameRequiredDescriptionDefault
vehicle_idYesVehicle ID from search results
rate_codeNoRate code to get specific pricing

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 states the tool retrieves 'detailed information and pricing,' but doesn't specify what details are included, whether pricing is dynamic or static, if authentication is required, or any rate limits. For a read operation with zero annotation coverage, this lacks critical 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, efficient sentence that front-loads the core purpose ('Get detailed information and pricing'). There is no wasted language or redundancy, making it highly concise and well-structured for quick understanding.

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?

Given the complexity of a tool that retrieves vehicle details and pricing, the description is incomplete. With no annotations and no output schema, it fails to explain what information is returned (e.g., specifications, availability, pricing breakdown) or behavioral aspects like error handling. This leaves significant gaps for an agent to use the tool effectively.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters ('vehicle_id' and 'rate_code') well-documented in the schema. The description adds minimal value beyond the schema by implying 'vehicle_id' comes from search results and 'rate_code' affects pricing, but doesn't provide additional syntax or format details. This meets the baseline for high schema coverage.

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 'detailed information and pricing for a specific vehicle from search results.' It distinguishes this tool from siblings like 'search_vehicles' (which likely returns multiple vehicles) and 'get_reservation' (which focuses on reservations rather than vehicle details). However, it doesn't explicitly contrast with all siblings, so it falls short of a perfect 5.

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 doesn't mention prerequisites (e.g., that 'vehicle_id' must come from search results), when not to use it, or how it differs from similar tools like 'get_reservation' or 'search_vehicles.' This leaves the agent to infer usage context, which is inadequate.

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

modify_reservationC

Modify an existing Hertz reservation — change dates, locations, or vehicle class.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmation_numberYes
last_nameYes
new_pickup_datetimeNoNew pickup date/time in ISO format
new_dropoff_datetimeNoNew dropoff date/time in ISO format
new_pickup_location_idNo
new_dropoff_location_idNo
new_vehicle_classNo

TDQS

C2.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 carries the full burden of behavioral disclosure. It states the tool modifies a reservation but doesn't cover critical aspects like whether changes are reversible, if it requires authentication, potential rate limits, error conditions (e.g., invalid confirmation number), or what the response includes. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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, efficient sentence that front-loads the core purpose ('Modify an existing Hertz reservation') and lists key modifiable elements. There is no wasted text, and it's appropriately sized for the tool's complexity.

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?

Given the complexity of a 7-parameter mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, parameter meanings beyond basic hints, and expected outcomes. For a tool that modifies reservations—a potentially sensitive operation—more context is needed to ensure safe and correct usage.

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

Parameters2/5

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

Schema description coverage is low at 29%, with only 2 out of 7 parameters having descriptions in the schema. The description mentions 'change dates, locations, or vehicle class', which hints at parameters like new_pickup_datetime and new_vehicle_class, but doesn't explain semantics for confirmation_number, last_name, or the distinction between pickup/dropoff parameters. It adds minimal value beyond the schema, failing to compensate for the coverage gap.

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 action ('modify') and resource ('existing Hertz reservation'), and specifies what can be changed ('dates, locations, or vehicle class'). It distinguishes from siblings like 'cancel_reservation' and 'create_reservation' by focusing on updates rather than creation or cancellation. However, it doesn't explicitly differentiate from 'get_reservation' or other tools beyond the modification aspect.

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 doesn't mention prerequisites (e.g., needing a valid reservation), exclusions (e.g., cannot modify after pickup), or comparisons to siblings like 'cancel_reservation' or 'create_reservation'. Usage is implied by the name but not explicitly stated.

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

search_vehiclesA

Search for available vehicles at Hertz for specific dates, locations, and preferences. Returns a list of available cars with pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pickup_locationYesCity name, airport code (e.g. LAX), or address
dropoff_locationNoReturn location if different from pickup
pickup_dateYesISO date YYYY-MM-DD
pickup_timeYesHH:MM format (24-hour)
dropoff_dateYesISO date YYYY-MM-DD
dropoff_timeYesHH:MM format (24-hour)
vehicle_classNoOptional vehicle class filter
driver_ageNoDriver age in years, default 25
discount_codeNoPromotional or discount code

TDQS

A3.7/5.0
Behavior3/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 adds value by specifying that it 'Returns a list of available cars with pricing,' which clarifies the output format. However, it lacks details on rate limits, authentication needs, or potential errors, leaving gaps in behavioral context for a search tool with no annotation coverage.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence and adds output information in the second. Both sentences earn their place by clarifying the tool's function and return value, with zero waste or redundancy, making it appropriately sized and efficient.

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 complexity of 9 parameters, no annotations, and no output schema, the description is moderately complete. It covers the purpose and output format but lacks details on behavioral traits like error handling or usage constraints. For a search tool with rich parameter schema but no other structured data, it should do more to compensate for missing annotations and output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'dates, locations, and preferences,' which aligns with parameters like pickup/dropoff and vehicle_class. Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't provide additional syntax or format insights.

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 specific action ('Search for available vehicles'), the resource ('at Hertz'), and the scope ('for specific dates, locations, and preferences'). It distinguishes this tool from siblings like 'get_vehicle_details' or 'create_reservation' by focusing on availability search rather than reservation management or detailed vehicle information.

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 implies usage context through 'Search for available vehicles... for specific dates, locations, and preferences,' suggesting when to use this tool. However, it doesn't explicitly state when not to use it or name alternatives among siblings, such as 'get_vehicle_details' for non-availability information or 'get_locations' for location data without vehicle search.

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

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific resources and actions in the car rental domain. For example, create_reservation, modify_reservation, and cancel_reservation cover different lifecycle stages, while get_reservation, get_vehicle_details, and get_locations handle distinct lookup operations. No tools appear to overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern (e.g., create_reservation, get_locations, modify_reservation). The verbs are descriptive and appropriately matched to actions, with no mixing of conventions like camelCase or inconsistent verb styles.

Tool Count5/5

With 10 tools, the server is well-scoped for managing car rentals, covering core workflows from search to reservation management. Each tool earns its place by addressing a specific need, such as loyalty status or rental policies, without being excessive or insufficient for the domain.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for Hertz rentals: create_reservation, get_reservation, modify_reservation, and cancel_reservation handle the reservation lifecycle, while search_vehicles, get_vehicle_details, get_locations, and add_extras support selection and customization. Additional tools like get_loyalty_status and get_rental_policies offer valuable context, leaving no obvious gaps.

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

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/markswendsen-code/mcp-hertz'

If you have feedback or need assistance with the MCP directory API, please join our Discord server