🚗 Enterprise MCP Servers
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.
📋 Table of Contents
- Overview
- Architecture
- Available MCP Servers
- Prerequisites
- Installation Guide
- Claude Desktop Configuration
- Usage Examples
- API Documentation
- Troubleshooting
- Development
- Security Notes
🎯 Overview
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.
🏗️ Architecture
Design Principles
- 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
Project Structure
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)
Technical Stack
- 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)
📦 Available MCP Servers
1. Enterprise Location Search (enterprise-location-text-mcp)
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
2. Enterprise Upgrade Rates (enterprise-upgrade-rates)
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
3. Enterprise Reservations (enterprise-reservation)
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
🔧 Prerequisites
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)
📥 Installation Guide
Step 1: Clone the Repository
# Clone the repository
git clone <your-repo-url>
cd EMMCP2
Step 2: Install Dependencies for Each Server
# 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 ..
Step 3: Verify Successful Build
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.js
If any files are missing, check for build errors in the respective directories.
🖥️ Claude Desktop Configuration
Step 1: Locate Your Configuration File
The Claude Desktop configuration file location varies by operating system:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%\Claude\claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
Step 2: Get Your Repository Path
Find the absolute path to your repository:
# In your EMMCP2 directory, run:
pwd
# This will output something like: /Users/username/Documents/EMMCP2
Step 3: Update Configuration
Open 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"]
}
}
}
Step 4: Restart Claude Desktop
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.
Step 5: Verify Installation
- 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?"
💡 Usage Examples
Location Search
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"
Upgrade Rates
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"
Reservation Management
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"
📖 API Documentation
Enterprise API Architecture
The MCP servers integrate with two main Enterprise API systems:
1. Location Service API
- Base URL:
https://prd.location.enterprise.com/enterprise-sls/ - Purpose: Location search and information
- Authentication: None required (public API)
2. Session/Reservation API
- Base URL:
https://prd-east.webapi.enterprise.com/enterprise-ewt/ - Purpose: Reservations and upgrade management
- Authentication: Session-based workflow
Response Format
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 */ }
}
🐛 Troubleshooting
Common Issues and Solutions
"Cannot find module" Error
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
"Server disconnected" Error
Cause: Build failed or runtime error
Solution:
- Rebuild the affected server:
npm run build - Test manually:
node dist/index.js - Check for error messages
Tools Not Showing in Claude Desktop
Cause: Configuration not loaded properly
Solutions:
- Ensure Claude Desktop is completely restarted
- Validate JSON syntax in config file
- Check for duplicate server names
Build Errors
Solution:
# Clean and rebuild
rm -rf node_modules dist
npm install
npm run build
Testing Individual Servers
You 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.
🔨 Development
Making Changes
- Edit the TypeScript source files (
index.ts) - Rebuild the affected server:
npm run build - Restart Claude Desktop to load changes
Development Mode
For active development with auto-reload:
npm run dev
Available Scripts
Each 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
Adding New Tools
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
🔒 Security Notes
- 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
📄 License
MIT License - See LICENSE file for details
🤝 Contributing
- 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
📞 Support
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
