How to Add a Flights MCP in Cursor or Claude

A flights MCP is a Model Context Protocol server for fare search. You point Cursor, Claude Code, or Claude Desktop at it. The agent searches LIS to LHR. You do not get a ticket.
This page is the Ktemia contract for that wiring: https://mcp.ktemia.com/mcp, a flights/SKILL.md that says ask if unclear, and instructions that never invent a city because the user said “soon”. The server is not live yet. The snippets below are the config we will accept, not a captured tool dump with invented prices.
The HTTP job stays on the flight search API post: POST /v1/flights, three required fields, search not book. The same compare job for a stay, a car, and a home sits on search a trip or a move.
Key Takeaways
- Anthropic open-sourced MCP on 25 November 2024. A flights MCP is a server that exposes search tools, not a PNR desk.
- Required fields stay origin, destination, and depart. The agent asks. It does not guess.
- MCP servers and skills sit on Ktemia Business ($299 / month), not on Free or Pro.
What is an MCP server?
On 25 November 2024, Anthropic’s Introducing the Model Context Protocol open-sourced MCP as an open standard for connecting AI assistants to tools and data. An MCP server is the service that exposes those tools. A flights MCP exposes fare search. It does not issue a ticket.
The current spec is dated 2026-07-28. The Model Context Protocol specification describes hosts (the LLM app), clients (connectors in that app), and servers (the tools). Cursor and Claude are hosts. https://mcp.ktemia.com/mcp is the server URL on Ktemia’s product agent surface. Point the host at the server. Do not write a custom flights client for each model.
That is the information most “what is MCP” pages skip when the query is travel. GitHub MCP, Slack MCP, and Jira MCP are other servers. They are not this URL’s job. A flights MCP is one route: search and compare flights the same way the UI and the API will.
Head terms mcp and mcp server are definition SERPs. This page is the flights job: how an agent gets origin, destination, and dates into a search without scraping a results page.
How do you add a flights MCP in Cursor and Claude Code?
Cursor’s MCP docs put custom servers in .cursor/mcp.json (project) or ~/.cursor/mcp.json (user). Remote HTTP servers use a url field. Claude Code’s MCP docs add a remote HTTP server with claude mcp add --transport http <name> <url>. Ktemia’s contract URL is https://mcp.ktemia.com/mcp. The server is not live. Saving this file will not return fares today.
Until it is live, treat this as the Cursor shape we will accept. It matches the mcp.json already shown on the marketing site. It is not a logged session.
{
"mcpServers": {
"ktemia": {
"url": "https://mcp.ktemia.com/mcp"
}
}
}
Claude Code, when the server exists:
claude mcp add --transport http ktemia https://mcp.ktemia.com/mcp
Do not put a dashboard key in frontend JavaScript. Cursor’s remote example uses headers for tokens; interpolate secrets with ${env:NAME} rather than committing them. We will publish the exact header name when keys exist, not invent one here.
The worked query stays LIS → LHR, depart 2026-10-12. Same airports in the dashboard, the POST /v1/flights body, the skill, and the copilot. If the user says “weekend in Europe”, the agent asks for origin, destination, and a date. It does not invent LHR.
Antigravity and Claude Desktop are hosts on the same product surface. The URL does not change per IDE. The client config file does.
How is a flights MCP different from a flight search API?
The 2026-07-28 spec says servers expose tools the model can execute. A flight search API is the HTTP job: one POST, JSON with origin, destination, and depart. MCP is how Cursor or Claude calls that job without your own SDK. Same three fields. Same search. Different pipe.
| Surface | What you give the machine | What it is for |
|---|---|---|
| Flight search API | POST /v1/flights |
Your product, a script, a backend |
| Flights MCP | mcp.json / claude mcp add |
Cursor, Claude Code, Claude Desktop |
| Skill | flights/SKILL.md |
Packaged how-to: search, ask if unclear |
| Instructions | System prompt | Standing rules if you do not load a skill |
| Snippet | Python / cURL / Node | The same POST, edited by a human |
The homepage skill scene currently shows GET https://api.ktemia.com/v1/flights. That is a mock. The contract on the API article is POST. When both are live, the skill file will say POST. Do not ship a skill that GET-polls a search route we defined as one POST.
MCP vs API is not “agents instead of HTTP”. The agent still hits the search contract. If you skip MCP, you call POST yourself. If you skip the API contract and only scrape a UI, you do not have a flights MCP. You have a brittle extractor.
Snippets are that POST. Connectors (n8n, Zapier, Make) are for workflows you already run. They do not change the rule: no origin, no call. A connector spoke can wait. This URL stays the agent wiring.
What goes in flights/SKILL.md?
Anthropic’s Agent Skills overview requires a SKILL.md with YAML name and description. The description must say what the skill does and when to use it. Claude matches that text to the user request. A flights skill that says only “travel helper” will fire on hotel questions and waste quota.
Ktemia packages the file at .agents/skills/ktemia/flights/SKILL.md. The name is ktemia-flights. The description is Search flights. Ask if unclear. Claude Code also discovers skills under .claude/skills/ in its own docs. Where you drop the folder depends on the host. The words inside the file do not.
Until the files ship, this is the body we will accept. It is not a downloaded skill from a live registry.
---
name: ktemia-flights
description: Search flights. Ask if unclear.
---
# How to call
POST https://api.ktemia.com/v1/flights
Required: origin, destination, depart.
Do not guess origin, dates, or cabin.
If a field is missing, ask.
The 2026-07-28 specification lists a Skills over MCP extension: structured instructions discovered through MCP. That does not replace SKILL.md on disk today. Treat the file as the flights how-to even if the host later also fetches skills over the protocol.
Do not put a boarding-pass or APIS (passenger-data) workflow in this skill. That is a different job and a different SERP.
How do instructions differ from MCP and skills?
MCP is the pipe. A skill is a packaged how-to the host can load. Instructions are the system prompt you paste when the host has no skill file, or when you want the same rule on every model.
Ktemia’s product already shows a hotels instruction: city, check-in, check-out, guests; if any is missing, ask; do not invent a city. Flights must match that pattern. Origin, destination, depart. If any is missing, ask. Do not invent LIS because the user said “soon”.
You search flights. You do not book a ticket.
Before you call POST /v1/flights you need origin, destination, and depart.
If any of those is missing, ask. Do not invent a city or a day.
Worked query when they have one: LIS to LHR, depart 2026-10-12.
Rank offers to compare. Do not return a PNR.
If nothing matches, say so. Ask which constraint they can relax.
Paste that into the host’s system prompt when you cannot install the skill. Do not paste it instead of MCP if you want the agent to actually call the server. Instructions without a server are a lecture. A server without instructions is a tool the model will misuse.
The copilot in the dashboard already asks when a query is unclear. The agent stack must not be laxer than the copilot. That is a billing bug on Free’s 50 API requests a month, and a trust bug on every plan.
Does a flights MCP book tickets or wrap Google Flights?
No, and no.
A successful search will return offers you can compare. It will not return a PNR. Ktemia’s terms treat a search as comparison, not a reservation. The MCP is not live. When it is, a successful tool call will still not be a ticket.
TechCrunch reported in November 2017 that Google would shut QPX Express on 10 April 2018. There is no official public Google Flights API. That is the Google Flights API post. A “google flights mcp server” in that SERP extracts or wraps Google’s UI. That is the same trap as a wrapper. It is not a flights MCP you control, and it is not this URL’s job.
Do not name the Ktemia server a booking MCP in your README. Do not name it a tracker. Flight number in, position out, is a different product.
What plan includes MCP servers?
As of 23 October 2026, the pricing page publishes four plans. Free is $0: dashboard, 50 API requests a month, search in the UI. Pro is $29.99 a month with 20,000 API requests at 20 requests per second. Business is $299 with 250,000 requests at 250 per second, MCP servers and skills, and workflow integrations. Enterprise is a call, with MCPs and skills in the custom setup.
Free and Pro do not list MCP servers. Do not paste mcp.json and expect a Free key to open mcp.ktemia.com. When the server is live, the plan that includes it is the plan on the pricing page that day. Ktemia can change some plan prices when demand is high.
Paid plans are monthly. Unused copilot credits reset with the billing period. That is already on the pricing FAQ. It is not an MCP-specific cap.
Point the agent at the same search.
A flights MCP is a pipe into fare search. It is not a booking API, not a Google Flights scrape, and not a definition page for the letters MCP. Cursor gets mcp.json. Claude Code gets claude mcp add. The skill says ask if unclear. Instructions say the same if there is no file.
The HTTP contract is the flight search API article. Caps and which plan includes MCP servers are on pricing. The endpoint is not live. When it is, this page gets a dated tool example, not a prettier fiction.
Sources
- Anthropic, Introducing the Model Context Protocol (retrieved 2026-09-18)
- Model Context Protocol specification (2026-07-28) (retrieved 2026-09-18)
- Model Context Protocol Blog, The 2026-07-28 Specification (retrieved 2026-09-18)
- Cursor, Model Context Protocol (MCP) (retrieved 2026-09-18)
- Claude Code, Connect Claude Code to tools via MCP (retrieved 2026-09-18)
- Anthropic, Agent Skills overview (retrieved 2026-09-18)
- TechCrunch, Google will pull its QPX Express API in April 2018 (retrieved 2026-09-18)
- Ktemia, Pricing (retrieved 2026-09-18)
- Ktemia, Terms of Service (retrieved 2026-09-18)
- Ktemia, Flight Search API: Compare Fares for a Route (retrieved 2026-09-18)
FAQ
What is a flights MCP?
A flights MCP is a Model Context Protocol server that exposes fare search to a client such as Cursor or Claude. It is not a ticket desk. The agent still needs origin, destination, and a depart date. Guessing those fields is not search.
Does a flights MCP book a ticket?
No. Search returns comparable fares. Booking creates an order, takes payment, and issues a ticket. Ktemia’s terms treat a search as comparison, not a reservation. The MCP is not live yet, and a successful search will still not be a ticket.
How do I add a flights MCP in Cursor or Claude Code?
In Cursor, put a remote server URL in .cursor/mcp.json or ~/.cursor/mcp.json. In Claude Code, use claude mcp add --transport http with that URL. Ktemia’s contract URL is https://mcp.ktemia.com/mcp. The server is not live. Do not paste a dashboard key into frontend JavaScript.
Is a Google Flights MCP a flights MCP?
No. There is no official public Google Flights API after QPX Express shut on 10 April 2018. A Google Flights MCP in that SERP extracts or wraps Google’s UI. That is a different job from a search-and-compare flights MCP you control.
Do I need MCP if I already have the flights API?
The HTTP contract is POST /v1/flights with origin, destination, and depart. MCP is how an agent calls that contract without a custom client. Skills and instructions tell the agent not to guess. Same three fields. Same search. Different wiring.