A comprehensive suite of Model Context Protocol (MCP) servers that integrate with Enterprise Rent-A-Car's APIs, enabling AI assistants to search locations, manage reservations, and check upgrade rates.
- Overview
- Architecture
- Available MCP Servers
- Prerequisites
- Installation Guide
- Claude Desktop Configuration
- Usage Examples
- API Documentation
- Troubleshooting
- Development
- Security Notes
This repository contains three specialized MCP servers that provide seamless integration with Enterprise car rental services:
- Location Search - Find Enterprise rental locations by city, state, or airport
- Upgrade Rates - Check vehicle upgrade pricing and availability
- Reservations - Create, modify, view, and cancel car rental reservations
Each server is designed as an independent microservice, following MCP best practices and providing a clean interface for AI assistants to interact with Enterprise's APIs.
- Modular Design: Each server handles a specific domain (locations, upgrades, reservations)
- TypeScript First: Full type safety and modern JavaScript features
- Error Resilience: Comprehensive error handling and informative error messages
- API Abstraction: Clean separation between MCP protocol and Enterprise API calls
- Stateless Operations: Each request is independent, ensuring reliability
EMMCP2/
βββ README.md # This file
βββ enterprise-location-text-mcp/ # Location search server
β βββ index.ts # Server implementation
β βββ package.json # Dependencies and scripts
β βββ tsconfig.json # TypeScript configuration
β βββ dist/ # Compiled JavaScript (after build)
βββ enterprise-upgrade-rates/ # Upgrade rates server
β βββ index.ts # Server implementation
β βββ package.json # Dependencies and scripts
β βββ tsconfig.json # TypeScript configuration
β βββ dist/ # Compiled JavaScript (after build)
βββ enterprise-reservation/ # Reservations server
βββ index.ts # Server implementation
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ dist/ # Compiled JavaScript (after build)
- Runtime: Node.js 18+ (required for modern JavaScript features)
- Language: TypeScript 5.0+
- Protocol: Model Context Protocol (MCP) 2024-11-05
- HTTP Client: node-fetch 3.x
- Transport: StdioServerTransport (standard input/output communication)
Powerful text-based location search capabilities for finding Enterprise rental locations.
Available Tools:
search_locations_by_city- Find locations in a specific citysearch_locations_by_state- List all locations in a state/provincesearch_locations_by_airport- Find airport or near-airport locations
Features:
- Multi-country support (US, CA, MX)
- Brand filtering (Enterprise, Alamo, National)
- Exotic/luxury vehicle location filtering
- Detailed location information including hours and contact details
Check upgrade availability and pricing for existing or potential reservations.
Available Tools:
get_upgrade_rates- Get detailed upgrade pricingget_session_info- Check current session and reservation statuscheck_upgrade_availability- Verify upgrade options for specific vehicle classes
Features:
- Real-time pricing information
- Session-based reservation workflow support
- Vehicle class upgrade paths
- Customer type and age-based pricing
Complete reservation management system for creating and managing car rentals.
Available Tools:
create_reservation- Book new car rentalsget_reservation_details- Retrieve specific reservation informationlist_reservations- Search reservations by customer or datemodify_reservation- Update dates, locations, or vehicle classcancel_reservation- Cancel bookings with optional reasons
Features:
- Full CRUD operations for reservations
- Customer information management
- Flexible date/time handling
- Multiple search criteria support
Before installing, ensure you have:
-
Node.js 18 or higher - Download here
# Check your Node.js version node --version # Should show v18.0.0 or higher
-
npm (comes with Node.js)
# Check npm version npm --version -
Claude Desktop - Download here
-
Git (for cloning the repository)
# Clone the repository
git clone <your-repo-url>
cd EMMCP2# Install Location Search server
cd enterprise-location-text-mcp
npm install
npm run build
# Install Upgrade Rates server
cd ../enterprise-upgrade-rates
npm install
npm run build
# Install Reservations server
cd ../enterprise-reservation
npm install
npm run build
# Return to root directory
cd ..Check that all servers built successfully:
# You should see these files
ls -la enterprise-location-text-mcp/dist/index.js
ls -la enterprise-upgrade-rates/dist/index.js
ls -la enterprise-reservation/dist/index.jsIf any files are missing, check for build errors in the respective directories.
The Claude Desktop configuration file location varies by operating system:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.jsonFind the absolute path to your repository:
# In your EMMCP2 directory, run:
pwd
# This will output something like: /Users/username/Documents/EMMCP2Open the configuration file in a text editor and add all three MCP servers:
{
"mcpServers": {
"enterprise-location-search": {
"command": "node",
"args": ["<YOUR_PATH>/enterprise-location-text-mcp/dist/index.js"]
},
"enterprise-upgrade-rates": {
"command": "node",
"args": ["<YOUR_PATH>/enterprise-upgrade-rates/dist/index.js"]
},
"enterprise-reservations": {
"command": "node",
"args": ["<YOUR_PATH>/enterprise-reservation/dist/index.js"]
}
}
}Example with actual path (macOS):
{
"mcpServers": {
"enterprise-location-search": {
"command": "node",
"args": ["/Users/b/Documents/EMMCP2/enterprise-location-text-mcp/dist/index.js"]
},
"enterprise-upgrade-rates": {
"command": "node",
"args": ["/Users/b/Documents/EMMCP2/enterprise-upgrade-rates/dist/index.js"]
},
"enterprise-reservations": {
"command": "node",
"args": ["/Users/b/Documents/EMMCP2/enterprise-reservation/dist/index.js"]
}
}
}Important: You must completely quit and restart Claude Desktop for the changes to take effect.
- macOS: Cmd+Q or right-click dock icon β Quit
- Windows: Right-click system tray icon β Exit
- Linux: Close all windows and ensure process is terminated
Then launch Claude Desktop again.
- Open Claude Desktop
- Start a new conversation
- Look for the π§ tools icon in the interface
- You should see all three Enterprise tool sets available
Test with: "What Enterprise car rental tools do you have available?"
Find locations in a city:
"Find all Enterprise locations in Miami, Florida"
"Show me car rental locations in Toronto, Canada"
"List all National brand locations in Los Angeles"
Search by state/province:
"Show me all Enterprise locations in New York state"
"List all rental locations in British Columbia, Canada"
Airport searches:
"Find Enterprise locations at LAX airport"
"Show me rental locations near JFK"
"Find car rental at Dallas Fort Worth airport"
Check upgrade options:
"Check upgrade rates for reservation ABC123"
"What vehicle upgrades are available for my rental?"
"Get upgrade pricing for a pickup on June 15th at LAX"
Create reservation:
"Create a car rental reservation:
- Pickup: LAX on June 15, 2025 at 10:00 AM
- Return: LAX on June 20, 2025 at 2:00 PM
- Customer: John Doe (john@example.com)"
View reservations:
"Show me reservation details for confirmation number RES123"
"List all reservations for customer email john@example.com"
"Find reservations between June 1 and June 30, 2025"
Modify reservation:
"Change reservation RES123 to pickup on June 16 instead"
"Update my reservation to return at SFO instead of LAX"
"Change vehicle class to full-size for reservation ABC123"
Cancel reservation:
"Cancel reservation RES123 due to change of plans"
"Cancel my reservation with confirmation number ABC123"
The MCP servers integrate with two main Enterprise API systems:
- Base URL:
https://prd.location.enterprise.com/enterprise-sls/ - Purpose: Location search and information
- Authentication: None required (public API)
- Base URL:
https://prd-east.webapi.enterprise.com/enterprise-ewt/ - Purpose: Reservations and upgrade management
- Authentication: Session-based workflow
All MCP servers return structured JSON responses with consistent formatting:
{
"success": true|false,
"data": { /* API response data */ },
"error": "Error message if applicable",
"timestamp": "ISO 8601 timestamp",
"search_params": { /* Request parameters used */ }
}Cause: Path in Claude Desktop config is incorrect
Solution:
- Verify the absolute path using
pwd - Ensure no typos in the configuration
- Check that
/dist/index.jsfiles exist
Cause: Build failed or runtime error
Solution:
- Rebuild the affected server:
npm run build - Test manually:
node dist/index.js - Check for error messages
Cause: Configuration not loaded properly
Solutions:
- Ensure Claude Desktop is completely restarted
- Validate JSON syntax in config file
- Check for duplicate server names
Solution:
# Clean and rebuild
rm -rf node_modules dist
npm install
npm run buildYou can test each server independently:
# Test location server
cd enterprise-location-text-mcp
node dist/index.js
# Should output: "Enterprise Location Text Search MCP server running on stdio"
# Test upgrade rates server
cd enterprise-upgrade-rates
node dist/index.js
# Should output: "Enterprise Upgrade Rates MCP Server running on stdio"
# Test reservations server
cd enterprise-reservation
node dist/index.js
# Should output: "Enterprise Reservations MCP Server running on stdio"Press Ctrl+C to stop the test.
- Edit the TypeScript source files (
index.ts) - Rebuild the affected server:
npm run build
- Restart Claude Desktop to load changes
For active development with auto-reload:
npm run devEach server includes these npm scripts:
npm run build- Compile TypeScript to JavaScriptnpm run dev- Development mode with auto-reloadnpm run clean- Remove build artifactsnpm start- Run the compiled server
To add new tools to a server:
- Add the tool definition in
ListToolsRequestSchemahandler - Implement the tool logic in
CallToolRequestSchemahandler - Add appropriate TypeScript interfaces
- Rebuild and test
- These servers connect to Enterprise's production APIs
- No authentication credentials are stored in the code
- API endpoints are publicly accessible but rate-limited
- Ensure you have proper authorization for reservation operations
- Do not commit sensitive data to version control
MIT License - See LICENSE file for details
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
For issues or questions:
- Create an issue in this repository
- Check Enterprise API documentation
- Reference MCP documentation
Last Updated: June 2025
Compatible with: Claude Desktop, MCP Protocol 2024-11-05
Node.js Required: 18.0.0 or higher