Wraps the Navifare REST API to help you find cheaper prices for flights users have already discovered. You get two tools: one that parses natural language flight details (including screenshot text) into structured data, and another that runs the actual price comparison across multiple booking sources. The workflow is straightforward: user shares flight info conversationally, you format it with format_flight_pricecheck_request, then call flight_pricecheck to search for better deals. Currently limited to round-trip flights only, no one-way or open-jaw routing. Requires a Gemini API key for the natural language parsing. Useful when users screenshot or paste flight details and want to know if they can book the same itinerary cheaper elsewhere.
Version: 0.1.5
Navifare finds a better price for a specific flight the user already found. Users should provide flight details conversationally, which will be structured into the required format.
This MCP server wraps the Navifare REST API as MCP tools for flight price comparison. It enables AI assistants like Claude to help users find better prices for flights they've already discovered.
https://mcp.navifare.com/mcphttps://www.navifare.com/mcp (Auto-updates from the MCP endpoint)format_flight_pricecheck_requestTitle: Format Flight Request
Parse and format flight details from natural language text or transcribed image content. Extracts flight information (airlines, flight numbers, dates, airports, prices) and structures it for price comparison. Returns formatted flight data ready for flight_pricecheck, or requests missing information if incomplete.
Annotations:
readOnlyHint: true - Tool only formats/parses data, no external callsdestructiveHint: false - Tool does not modify or delete dataInput Schema:
user_request (required): Flight details in natural language text. Include all available information: flight numbers, airlines, departure/arrival airports and times, dates, prices, passenger counts, and travel class.Example Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "format_flight_pricecheck_request",
"arguments": {
"user_request": "I found an Aeroitalia flight XZ2020 from FCO to MXP leaving tomorrow at 19.31 and returning with XZ2021 MXP to FCO next Friday at 10.11. 1 adult, economy, the best fare was 221 EUR"
}
}
}
flight_pricecheckTitle: Flight Price Check
Search multiple booking sources to find better prices for a specific flight the user has already found. Compares prices across different booking platforms to find cheaper alternatives for the exact same flight details.
Annotations:
readOnlyHint: false - Tool performs searches and may trigger external API callsdestructiveHint: false - Tool does not modify or delete dataInput Schema:
trip (required): Flight trip details including segments, passengers, and travel class
legs (required): Array of flight legs (one for outbound, one for return in round trips)travelClass (required): ECONOMY, PREMIUM_ECONOMY, BUSINESS, or FIRSTadults (required): Number of adult passengers (minimum: 1)children (required): Number of child passengers (minimum: 0)infantsInSeat (required): Number of infants requiring a seat (minimum: 0)infantsOnLap (required): Number of infants on lap (minimum: 0)source (required): Source identifier for the query (e.g., "Claude", "MCP", "ChatGPT")price (required): Reference price found by the user (e.g., "84.00", "200.50")currency (required): Three-letter ISO currency code (e.g., "EUR", "USD", "GBP")location (required): Two-letter ISO country code for user location (e.g., "ES", "IT", "US"). If unsure, default to "ZZ"Example Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flight_pricecheck",
"arguments": {
"trip": {
"legs": [
{
"segments": [
{
"airline": "XZ",
"flightNumber": "2020",
"departureAirport": "MXP",
"arrivalAirport": "FCO",
"departureDate": "2025-12-16",
"departureTime": "07:10",
"arrivalTime": "08:25",
"plusDays": 0
}
]
}
],
"travelClass": "ECONOMY",
"adults": 1,
"children": 0,
"infantsInSeat": 0,
"infantsOnLap": 0
},
"source": "MCP",
"price": "84",
"currency": "EUR",
"location": "IT"
}
}
}
Revenue share available for qualified partners!
Earn commission on flight bookings made through your integration. Revenue share available for qualified partners.
This server complies with Anthropic's MCP Directory Policy. See docs/COMPLIANCE.md for details.
Privacy Policy and Terms of Service: https://navifare.com/terms
Contact: contact@navifare.com
Privacy Inquiries: privacy@navifare.com
The only environment variable you typically need to document for this MCP server is:
GEMINI_API_KEY (required): Google Gemini API key for natural language parsing (used when your integration relies on Gemini for text/image understanding).See docs/USAGE_EXAMPLES.md for complete usage examples with detailed workflows.
Most documentation is in the docs/ directory (and a few files like this README.md and REPOSITORY_STRUCTURE.md live at the repo root):
Test files are located in the test/ directory. See test/README.md for details about available tests.
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js
# Run specific test
node test/test-mcp.js
Helper scripts are in the scripts/ directory:
scripts/start-local.sh - Start local development serverscripts/deploy-to-render.sh - Prepare for Render deploymentscripts/start-servers.sh - Start multiple serversscripts/stop-servers.sh - Stop running serversnavifare-mcp/
├── src/ # TypeScript source code
├── dist/ # Compiled JavaScript (generated)
├── docs/ # Documentation
├── test/ # Test files
├── scripts/ # Helper scripts
└── [config files] # package.json, Dockerfile, etc.
See REPOSITORY_STRUCTURE.md for detailed structure.
GEMINI_API_KEY*secretGoogle Gemini API key for image extraction (required)
NAVIFARE_API_BASE_URLNavifare API base URL (optional, defaults to https://api.navifare.com/api/v1/price-discovery/flights)
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp