Disclosure: this post is by MAQAMI, the travel booking platform that runs the server used below.
Ask a language model "what's available in Lisbon for Nov 12 to 15, and what does it cost?" and it will usually guess from training data. Getting a real answer normally means a supplier contract, API onboarding, or a scraper that breaks every few weeks.
The Model Context Protocol (MCP) gives you a shorter path. If someone already exposes a booking engine as MCP tools, your client (or your own agent) can call those tools directly.
This tutorial connects the MAQAMI Travel MCP server, a public remote endpoint:
Endpoint: https://mcp.maqami.co/
Transport: Streamable HTTP
Auth: none (no API key, no sign-up)
There's nothing to install. You add a URL to your client and start asking questions.
What your agent gets
Once connected, the model can:
- Search live hotel rates by city, coordinates, place or a hotel list, for your dates, guests and currency (3M+ hotels behind it)
- Filter by star rating, refundable rates only, board type (for example breakfast included) and more
- Compare room options at one hotel, with meal plan and cancellation policy per rate
- Look up places and landmarks ("near Shibuya station", "Sultanahmet")
- Pull hotel details: description, amenities, photos, location, and guest reviews
- Search hotels in plain language ("quiet boutique hotel with a spa near the old town"), a beta feature
- Search flights: one-way, round trip or multi-city, with cabin class and stop filters
- Check the weather for a destination and dates
- Prebook, then book: a two-step flow that re-checks the price before anything is confirmed
One practical tip before you start: hotel rate search needs dates, number of guests, a currency and the guest's nationality. Prompts that include all four work first time.
Step 1: Connect your client
Pick the one you use. The endpoint for every client is mcp.maqami.co.
Claude Code
claude mcp add --transport http maqami-travel https://mcp.maqami.co/
Run /mcp inside Claude Code to check that it shows as connected.
Cursor
Add this to .cursor/mcp.json in your project (or ~/.cursor/mcp.json for every project):
{
"mcpServers": {
"maqami-travel": {
"url": "https://mcp.maqami.co/"
}
}
}
Then open Customize in the sidebar and make sure maqami-travel is enabled.
VS Code with GitHub Copilot
Add this to .vscode/mcp.json (note the top-level key is servers, not mcpServers). Newer VS Code builds also read a portable .mcp.json at the project root with an mcpServers key; see the guides.
{
"servers": {
"maqami-travel": {
"type": "http",
"url": "https://mcp.maqami.co/"
}
}
}
Open Copilot Chat in agent mode and the tools appear under Configure Tools.
Claude (claude.ai, Claude Desktop)
Go to Customize → Connectors, click +, then Add custom connector. Paste https://mcp.maqami.co/ and click Add. Leave the OAuth fields empty. Enable it per chat from the + button → Connectors.
Remote servers go through the Connectors screen, not claude_desktop_config.json (that file is for local servers). Free plans can add one custom connector. On Team and Enterprise plans an Owner adds it for the organization first.
ChatGPT
Developer mode is available on the web for Plus, Pro, Business, Enterprise and Education accounts. Turn it on under Settings → Security and login → Developer mode, create a developer-mode app for a remote MCP server with the URL above, and choose No Authentication. In a chat, pick Developer mode from the + menu and select the app.
Cline and Windsurf
Cline (remote servers need the transport set explicitly):
{
"mcpServers": {
"maqami-travel": {
"type": "streamableHttp",
"url": "https://mcp.maqami.co/"
}
}
}
Windsurf's Cascade agent reads mcp_config.json (open it from the MCPs section of the Cascade panel menu) and takes serverUrl for remote servers:
{
"mcpServers": {
"maqami-travel": {
"serverUrl": "https://mcp.maqami.co/"
}
}
}
Your own agent (OpenAI Responses API)
If you're building your own agent, the Responses API can call a remote MCP server for you. Restrict it to the tools you need with allowed_tools:
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-4.1", # any model that supports the MCP tool
tools=[{
"type": "mcp",
"server_label": "maqami",
"server_description": "Live hotel rates, hotel details and places.",
"server_url": "https://mcp.maqami.co/",
"allowed_tools": ["post_hotels_rates", "get_data_places", "get_data_hotel"],
"require_approval": "always",
}],
input="Find 4-star hotels in Lisbon for Nov 12 to 15, 2 adults, EUR, guest nationality GB.",
)
print(resp.output_text)
With require_approval: "always" the API returns an mcp_approval_request first. Approve it by sending an mcp_approval_response with previous_response_id, or set require_approval to "never" for read-only tools once you trust the server. The OpenAI Agents SDK wraps the same config in HostedMCPTool(tool_config={...}).
Step 2: Try these prompts
Copy any of these into your client once it's connected:
-
Hotel search with the four inputs it needs
"Find 4-star hotels in Lisbon for Nov 12 to 15, 2 adults, prices in EUR. I'm a UK resident. Show the 5 lowest total prices."
-
Compare rooms and cancellation terms
"For the second hotel, show up to 3 room options with the meal plan, total price and free-cancellation deadline for each."
-
Plain-language search plus reviews
"Find a quiet boutique hotel with a spa near the old town in Dubrovnik. Show details and photos for the best match and summarize what guests say about noise."
-
Flights and a hotel in one conversation
"Economy flights from Cairo to Istanbul, out Nov 12 and back Nov 16, 1 adult, USD, nonstop only. Then find 4-star hotels in Sultanahmet for those nights, 1 adult, USD, nationality EG."
-
Place lookup plus weather
"Look up Shibuya Station in Tokyo, show hotels within 1 km with their lowest rate for Dec 3 to 5, 1 adult, USD, nationality US, and tell me the weather forecast for those dates."
What comes back
You get real hotels with IDs, live rates in your currency, room names, meal plans and cancellation policies, plus hotel details, reviews and weather. Flight results include carriers, times, stops and fares. Your client shows the arguments and raw response of every call, which is handy for debugging.
Rates are live, so re-run a search before you quote a price to anyone.
Two things to know
Booking tools create real reservations. The server has a prebook → book flow. Prebook re-checks the price and shows the cancellation policy; book confirms the reservation with guest and payment details. If you're only prototyping search, keep tool approval on (most clients ask before running a tool by default, and ChatGPT developer mode asks for any tool not marked read-only) or switch the booking tools off in your client's per-tool settings.
Shorter tool lists work better. The server exposes a broad tool set. If you only need search, turn off what you don't use (or use allowed_tools in the Responses API). Models pick the right tool more reliably from a short list.
Wrap-up
One URL, no key, and your agent can answer "what's available and what does it cost?" from live data.
- Endpoint: https://mcp.maqami.co/
- Listings: the official MCP Registry (
io.github.negm17111995/maqami-travel), Glama and mcp.so
Feedback on tool naming and descriptions is very welcome, especially from people building travel agents. Connect here: https://mcp.maqami.co/
Top comments (0)