Give an AI client the whole TSE API
A remote Model Context Protocol server covering every Travel Search Engine endpoint: flight, hotel, transfer, car hire and package search, booking, ticketing, payments and servicing, plus activities, travel insurance, cruises and visa requirements, with places and the fare calendar to search by. It stores nothing between requests and holds no credentials of its own. You set your own API key once in your client's configuration; it is sent with every call and never passes through the model, which can only ever reach what your key already reaches.
Connect
One command for Claude Code. Any other MCP client takes the JSON below in its
own configuration file. Put your own key in place of tse_test_...: a test key
from developers.travnet.app. The transport is
streamable HTTP, so there is nothing to install and nothing to keep running on your machine.
claude mcp add --transport http tse https://mcp.travnet.app \ --header "Authorization: Bearer tse_test_..."
{
"mcpServers": {
"tse": {
"type": "http",
"url": "https://mcp.travnet.app",
"headers": { "Authorization": "Bearer tse_test_..." }
}
}
}Five tools, not one per endpoint
Exposing every endpoint as its own tool would fill the model's context before it had read your question, and choosing between that many similar names makes selection worse rather than better. These five let a client navigate the surface instead: work out what exists, read the exact contract, then make the call.
| Tool | What it does |
|---|---|
| api_conventions | The rules that apply everywhere: how authentication works, why money is carried in each currency's minor unit, when an idempotency key is required, how the asynchronous search flow returns a stream rather than results, and which host to talk to. |
| list_areas | The map. Every surface and area with a count of the endpoints inside it, so a client can orient itself before searching. |
| search_endpoints | Find endpoints by keyword, by area or by HTTP method, without loading the whole surface into context. |
| describe_endpoint | The full contract for one endpoint: every field, its type, whether it is required, and the exact enum values it accepts. |
| call_endpoint | Execute a real call against the test or production host, with your key, and return the response. At most 60 calls a minute from one client. |
What stops it doing damage
confirm=true on the call. Reading the surface is
free; changing it is deliberate.Idempotency-Key are refused without one. A key
replays only a success: after a failure it runs again once 300 seconds have
passed, so read the booking before retrying.