AHM Transfer
Server Details
Fixed prices, conditions and booking links for airport transfers in Alanya and Antalya, Türkiye.
- Status
- Healthy
- Uptime
- 100.0% over 26 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- AHM Transfer
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a distinct purpose: building a booking link, fetching service facts, quoting a specific pair, and listing all priced routes. The only mild overlap is between get_transfer_price and list_routes, but the descriptions clearly separate a single requested pair from the full catalogue.
All four tools follow a clean verb_noun snake_case pattern (create_booking_link, get_service_info, get_transfer_price, list_routes). No mixing of conventions or vague standalone verbs.
Four tools is a tight, well-scoped set matching the narrow domain of a single transfer company. It is on the thin side, but each tool earns its place and nothing is redundant.
The surface covers the full enquiry-to-booking flow: discover routes, get a price, read policies, and hand off to WhatsApp for confirmation. Since booking and payment happen off-tool in the chat, the lack of a status/availability tool is a minor gap rather than a failure.
Available Tools
4 toolscreate_booking_linkCreate booking linkARead-onlyIdempotentInspect
Builds a link to AHM Transfer's booking page with the request (route, date, time, passengers) already filled in. The traveller reviews it there and sends it to AHM Transfer on WhatsApp with one tap. Nothing is booked or charged by this tool: the request is confirmed by AHM Transfer in the WhatsApp chat and payment is made after the ride. Known places: Gazipaşa Airport (GZP); Antalya Airport (AYT); Alanya Center; Mahmutlar / Kestel; Konaklı / Avsallar; Okurcalar / Türkler; Side / Manavgat. The airports are named "Antalya Airport (AYT)" and "Gazipaşa Airport (GZP)".
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Drop-off place | |
| date | No | Transfer date, YYYY-MM-DD | |
| from | Yes | Pick-up place | |
| name | No | Passenger name for the name sign | |
| note | No | Flight number, hotel name, child seat or other notes | |
| time | No | Pick-up or flight arrival time, HH:MM (local time) | |
| language | No | Language of the booking page and message (default en) | |
| passengers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true; the description is consistent with that and reinforces it ('Nothing is booked or charged by this tool'). It goes further by describing the downstream confirmation and payment flow, which annotations cannot express. It omits link validity/expiry, which would be the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the no-booking disclaimer, and the place list is operationally useful. The closing sentence restating the airport naming slightly duplicates the place list, so it is not wasteful but not perfectly tight either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema, the description covers what it produces (a prefilled booking link), what it does not do (no booking, no charge), and the valid place vocabulary. An agent has everything needed to call it and to set caller expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 88%, so the baseline is 3, but the description adds genuine meaning by enumerating known place values for from/to and fixing the exact naming for the two airports. That directly reduces invalid-value calls beyond what the schema enumerates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and artifact ('Builds a link ... with the request already filled in') plus the exact fields prefilled. It is clearly distinguishable from the read-only siblings get_service_info, get_transfer_price, and list_routes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys the workflow context (traveller reviews, sends via WhatsApp, confirmation happens in chat, payment after the ride), which tells the agent where this tool sits in the process. It never explicitly names a sibling or states when NOT to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_infoGet service informationBRead-onlyIdempotentInspect
Facts about AHM Transfer: vehicles, passenger capacity, payment, cancellation, flight-delay and child-seat policy, service area, languages, contact details and the FAQ.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language of the FAQ text (default en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds the substantive point that the payload is a static block of policy/FAQ facts rather than live booking data, which is genuinely useful, but it says nothing about return formatting or size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence, front-loaded with the subject ('Facts about AHM Transfer') followed by the content inventory. The enumeration is long but each item is meaningful content, not filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of stating what comes back, and the enumerated fact categories do that reasonably well. The main remaining gap is that the schema's language parameter is not linked to how the FAQ text is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single enum parameter (language, default en) is fully documented in the schema, so the baseline is 3. The description never mentions the language parameter, and its use of 'languages' as a content category (service languages) risks being read as the same thing as the language input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates the facts the tool returns (vehicles, capacity, payment, cancellation, policies, service area, contact, FAQ), which tells an agent the resource being fetched. However, it is a bare noun phrase with no verb and no differentiation from siblings like get_transfer_price or list_routes, which also return service-specific data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool rather than get_transfer_price, list_routes, or create_booking_link. The usage (answering general informational/policy questions) is only implied by the enumerated content, leaving the agent to infer the routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transfer_priceGet transfer priceARead-onlyIdempotentInspect
Fixed price in EUR for a private AHM Transfer ride between two places in the Alanya / Antalya region of Turkey. The price is per vehicle (not per person) and the same in both directions. Returns "no list price" for pairs that are quoted on request. Known places: Gazipaşa Airport (GZP); Antalya Airport (AYT); Alanya Center; Mahmutlar / Kestel; Konaklı / Avsallar; Okurcalar / Türkler; Side / Manavgat. The airports are named "Antalya Airport (AYT)" and "Gazipaşa Airport (GZP)".
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Drop-off place, e.g. "Alanya" | |
| from | Yes | Pick-up place, e.g. "Antalya Airport (AYT)" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds genuinely non-obvious behavior: pricing is per vehicle rather than per person, directionality is irrelevant, and on-request pairs return the literal sentinel "no list price" — which an agent must recognize rather than treat as an error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core semantics (price, per vehicle, symmetric, no-list-price case) are front-loaded and every sentence is load-bearing. The airport naming is stated twice — once inside the known-places list and again as an explicit instruction — which is mild redundancy, though arguably justified by the exact-match requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so: it names the currency (EUR), the unit basis (per vehicle), and the non-numeric sentinel for on-request pairs. Combined with the enumerated place vocabulary, an agent has everything needed to call and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description exceeds that by enumerating the valid place values and mandating the exact airport strings ("Antalya Airport (AYT)", "Gazipaşa Airport (GZP)"), which materially improves the odds of a resolvable request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — a fixed EUR price for a private AHM Transfer ride between two places — and scopes it geographically (Alanya/Antalya region). It is clearly distinguishable from siblings like list_routes and get_service_info without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes clear context for use (private transfer pricing between two known places, same price in both directions) and warns that some pairs return "no list price" because they are quoted on request. It stops short of naming an alternative tool or an explicit when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_routesList routes and pricesARead-onlyIdempotentInspect
All AHM Transfer routes that have a fixed list price, with distance and duration. Prices are in EUR per vehicle.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds real value beyond that by disclosing the inclusion filter (fixed list price only, excluding dynamically priced routes) and the price unit (EUR per vehicle), but it says nothing about result size, ordering, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, and the most important qualifier (fixed list price) is front-loaded before the return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns and does so adequately by naming distance, duration, and per-vehicle EUR prices. The main remaining gap is result volume/ordering, which an agent calling a full-list endpoint would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There are no arguments whose semantics could be misread.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (AHM Transfer routes) with a clear scope qualifier: only routes that have a fixed list price. The verb is implied by the name/title rather than stated, and the description never contrasts itself with the sibling get_transfer_price, so it is clear but not sibling-differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no reference to alternatives such as get_transfer_price for a single quote. The fixed-list-price qualifier hints at scope but the agent must infer that this is the browse-all-routes entry point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
create_booking_link - First observed
get_service_info - First observed
get_transfer_price - First observed
list_routes
Related MCP Connectors
Quote and request private airport transfers in Antalya, Turkey. Operator confirms each request.
Fixed-price quotes and bookings for private airport transfers: Gold Coast, Brisbane, Byron Bay.
Fixed-price airport transfers and long rides from Upper Austria, Salzburg, Passau
Fixed London chauffeur prices: airport & cruise transfers, hourly hire, day trips, booking links.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceFixed London chauffeur prices for AI agents: Heathrow/Gatwick/Stansted/Luton and cruise-port transfers, hourly and full-day hire, private day trips, Heathrow VIP meet & greet, plus pre-filled booking links. Public remote endpoint, no API key.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to get fixed-price quotes and book London airport transfers, with flight validation and inter-agent communication via A2A protocol.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to report what a car hire will really cost at 120+ airports in Europe, the UK and the US, drawing on measured data for second-driver fees, deposits, debit-card acceptance, desk hours and excess-cover prices. Also builds links to live prices for a person's exact dates and needs, ranked by the total they will actually pay.Apache 2.0
- AlicenseAqualityDmaintenanceEnables booking premium private chauffeur transfers in Paris and across Europe directly from AI agents. Provides tools to list vehicles, get quotes, book rides, and retrieve service information.4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.