Skip to main content
Glama

GeoArm Taxi — Tbilisi ⇄ Yerevan rides

Server Details

Book shared or private rides between Tbilisi and Yerevan: live prices, schedule, booking requests.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct resource+action: reading offers (get_prices_and_schedule), creating a request (create_booking), and checking its state (get_booking_status). The descriptions explicitly cross-reference each other (read prices before booking, use the token from create_booking), eliminating ambiguity.

Naming Consistency5/5

All three names follow a consistent snake_case verb_noun pattern (create_booking, get_booking_status, get_prices_and_schedule). The get_* vs create_* prefix cleanly signals read vs write.

Tool Count4/5

Three tools is on the lean side but well-matched to a narrow booking flow: quote, book, track. Nothing extraneous, though the surface is minimal enough that a small addition wouldn't feel crowded.

Completeness4/5

The core lifecycle (get offer → create request → check status) is fully covered and the request/confirmation flow is well explained. A cancel or list-my-bookings operation is absent, but the dispatcher-mediated confirmation model makes that a minor, workable gap.

Available Tools

3 tools
create_bookingRequest a bookingAInspect

Sends a booking request for a ride between Tbilisi and Yerevan (a seat, or a whole vehicle) for the passenger. A booking is a request: it is NOT confirmed until a GeoArm Taxi dispatcher contacts the passenger to confirm it. Use the values from get_prices_and_schedule (point, time, car, currency), the passenger's real name and phone, and get the passenger's yes to the price first. Payment is in cash to the driver. Returns the booking number, what was booked, the total, and a status_token for get_booking_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
carYes`sprinter` = a seat on the scheduled minibus (the default choice)
dirYes`tbs-evn` = Tbilisi → Yerevan, `evn-tbs` = Yerevan → Tbilisi
latNo
lngNo
paxYesPassengers; at most `types[car].max`
dateYesYYYY-MM-DD, today or later (Tbilisi date), at most a year ahead
langNoThe language we should use with the passenger (an unknown value is treated as `en`)en
nameYesThe passenger's name
timeYesOne of `schedule[dir]` from /api/config, or `other` for a time outside the timetable (whole vehicle; the dispatcher sets the price)
agentNoIf an AI agent makes the booking: its name (e.g. `ChatGPT`, `Claude`). Shown to the dispatcher. When you leave it out, your MCP client's name is used.
notesNoFlight number, luggage, a child seat request and the like (longer text is cut to 1000 characters)
phoneYesThe passenger's phone in international format, e.g. +995 5xx xx xx xx
pointYesA departure point id from `points[dir]` in /api/config, or `@addr` for pick-up from an address (extra fee, confirmed by the dispatcher)
addressNoRequired with `point: "@addr"` unless `lat`/`lng` are given
currencyYesOne of `currencies` from /api/config; the price is taken from the server

Output Schema

ParametersJSON Schema
NameRequiredDescription
numberNoThe booking number
statusNo
bookingNoWhat was booked, as the server understood it
messageNoA sentence for the passenger, in `lang`
telegramNoA link the passenger can open to get the confirmation in Telegram
confirmedNoAlways false here: a dispatcher confirms later
status_urlNo
status_tokenNo

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, non-idempotent, open-world behavior, but the description adds crucial semantics: a booking is a request and is NOT confirmed until a dispatcher contacts the passenger, and payment is cash to the driver. It does not discuss duplicate-submission or cancellation behavior, so a 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, each carrying distinct information: capability, request-not-confirmation status, input sourcing, payment, and return payload. Front-loaded with the core action and scoping.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter mutation with an output schema and strong annotations, the description covers the confirmation workflow, the input sourcing rule, payment mode, and the follow-up tool. Nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 87%, so the baseline is 3; the description adds interpretive value by tying point, time, car and currency to /api/config values via get_prices_and_schedule, and stressing a real name and phone. It doesn't add meaning for lat/lng, agent, notes or lang beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (sends a booking request) and resource (a ride between Tbilisi and Yerevan, seat or whole vehicle), plus the scope variants. An agent can immediately distinguish it from get_prices_and_schedule and get_booking_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: take point/time/car/currency from get_prices_and_schedule, obtain the passenger's consent to the price first, and use get_booking_status with the returned status_token. It names prerequisites and the follow-up tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_booking_statusBooking statusA
Read-onlyIdempotent
Inspect

The state of a booking request made with create_booking: received (not confirmed yet), confirmed, completed or cancelled. Needs the status_token create_booking returned. No personal data is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
status_tokenYesThe status_token from create_booking

Output Schema

ParametersJSON Schema
NameRequiredDescription
dirNo
paxNo
dateNo
timeNo
numberNo
statusNo
confirmedNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, non-destructive and closed-world behavior. The description adds two genuinely useful facts beyond them: the meaning of each returned state (not present in the schema, which has zero enums) and the privacy guarantee that no personal data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the resource and its state vocabulary, then the prerequisite token, then the privacy note. Every sentence carries distinct information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no elaboration, and the description covers the two things the schema cannot: the semantics of each status value and the data-protection guarantee. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter and the schema already says 'The status_token from create_booking'. The description repeats that same provenance with no additional format, length, or sourcing nuance, so this is the baseline case where structured data does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource ('the state of a booking request') and explicitly ties it to the create_booking lifecycle, enumerating the four possible states (received, confirmed, completed, cancelled). An agent can distinguish this read-only status lookup from create_booking and get_prices_and_schedule 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly implies the usage context: this is the follow-up call to create_booking, and it requires the status_token that create_booking returned. It provides a clear when-to-use signal but never names an alternative tool or states an explicit exclusion, so it stops short of the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_prices_and_schedulePrices, departure points and timesA
Read-onlyIdempotent
Inspect

The live GeoArm Taxi offer for rides between Tbilisi (Georgia) and Yerevan (Armenia): currencies; per car type (sprinter = a seat on the scheduled minibus, minivan, sedan) the seats, the price per passenger and the whole-vehicle price when there is one; the departure points (ids and English names) and departure times per direction; and the key facts. Read it before create_booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNoOnly this direction: `tbs-evn` = Tbilisi → Yerevan, `evn-tbs` = Yerevan → Tbilisi. Leave it out for both.

Output Schema

ParametersJSON Schema
NameRequiredDescription
carsYes
factsYes
currenciesYes
directionsYes
address_pickupYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorldHint=false, so safety is covered. The description adds useful context beyond them: the data is a 'live' offer, implying dynamic pricing/freshness rather than a cached static list, which matters for a pricing tool. It does not mention output shape, but an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the identity of the tool before the inventory of returned fields, and every clause is an informative item rather than filler. The long semicolon list makes it dense but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with rich annotations and an output schema, the description covers identity, scope, returned content, and workflow placement. An agent has everything needed to call it correctly and to know when to prefer it over its siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single enum parameter already documents tbs-evn/evn-tbs and the both-directions default. The description reinforces 'per direction' departure times but adds no syntax or semantics beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource set (live GeoArm Taxi offer for the Tbilisi–Yerevan route) and enumerates exactly what is returned: currencies, per-car-type seats and prices, departure points with ids, departure times per direction, and key facts. An agent can distinguish this read-only pricing tool from create_booking and get_booking_status without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: 'Read it before create_booking,' which names the sibling and the sequencing condition. It does not state when not to call it or how it differs from get_booking_status, so it falls just short of full when/when-not guidance.

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.

  1. 3 tool updates
    • First observedcreate_booking
    • First observedget_booking_status
    • First observedget_prices_and_schedule

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Live intercity bus-trip search across Ukraine and Europe — real-time prices, seats, carriers, cheapest-day-of-month calendar, and trip details with passenger discounts. Read-only, no API key; also available as a hosted remote endpoint at https://mcp.soloway.com.ua/mcp.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to search and compare the cheapest flights, trains, buses, private taxis and hotels across Iran, including free seats, baggage allowances, refund rules and exact prices, for a single date or across weeks. All 22 tools are read-only and return compact structured JSON, so an agent can plan multi-mode trips and hotel stays without logging in or booking.
    22
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources