GeoArm Taxi — Tbilisi ⇄ Yerevan rides

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

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
96%
Qualität der Benennung
100%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,568Tokens (Tool-Definitionen)
~4.7 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.23% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "booking": {
      "url": "https://geoarmtaxi.com/mcp"
    }
  }
}

Remote-Endpunkte

https://geoarmtaxi.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (3)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢get_prices_and_schedule(direction)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "direction": {
      "type": "string",
      "enum": [
        "tbs-evn",
        "evn-tbs"
      ],
      "description": "Only this direction: `tbs-evn` = Tbilisi → Yerevan, `evn-tbs` = Yerevan → Tbilisi. Leave it out for both."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "currencies": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "cars": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "car",
          "label",
          "seats",
          "price_per_passenger"
        ],
        "properties": {
          "car": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "seats": {
            "type": "integer"
          },
          "price_per_passenger": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "Amount per currency code"
          },
          "whole_vehicle_price": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "Amount per currency code"
          }
        }
      }
    },
    "directions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "dir",
          "label",
          "points",
          "times"
        ],
        "properties": {
          "dir": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "points": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              }
            }
          },
          "times": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "address_pickup": {
      "type": "boolean"
    },
    "facts": {
      "type": "string"
    }
  },
  "required": [
    "currencies",
    "cars",
    "directions",
    "address_pickup",
    "facts"
  ]
}
🟡create_booking(dir, point, address, lat, lng, ...)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "dir": {
      "type": "string",
      "enum": [
        "tbs-evn",
        "evn-tbs"
      ],
      "description": "`tbs-evn` = Tbilisi → Yerevan, `evn-tbs` = Yerevan → Tbilisi"
    },
    "point": {
      "type": "string",
      "description": "A departure point id from `points[dir]` in /api/config, or `@addr` for pick-up from an address (extra fee, confirmed by the dispatcher)"
    },
    "address": {
      "type": "string",
      "maxLength": 200,
      "description": "Required with `point: \"@addr\"` unless `lat`/`lng` are given"
    },
    "lat": {
      "type": [
        "number",
        "null"
      ]
    },
    "lng": {
      "type": [
        "number",
        "null"
      ]
    },
    "date": {
      "type": "string",
      "format": "date",
      "description": "YYYY-MM-DD, today or later (Tbilisi date), at most a year ahead"
    },
    "time": {
      "type": "string",
      "description": "One of `schedule[dir]` from /api/config, or `other` for a time outside the timetable (whole vehicle; the dispatcher sets the price)"
    },
    "car": {
      "type": "string",
      "enum": [
        "sprinter",
        "minivan",
        "sedan"
      ],
      "description": "`sprinter` = a seat on the scheduled minibus (the default choice)"
    },
    "pax": {
      "type": "integer",
      "minimum": 1,
      "description": "Passengers; at most `types[car].max`"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "The passenger's name"
    },
    "phone": {
      "type": "string",
      "description": "The passenger's phone in international format, e.g. +995 5xx xx xx xx"
    },
    "currency": {
      "type": "string",
      "enum": [
        "GEL",
        "USD",
        "AMD"
      ],
      "description": "One of `currencies` from /api/config; the price is taken from the server"
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "ka",
        "ru",
        "hy",
        "tr",
        "ar",
        "fa"
      ],
      "default": "en",
      "description": "The language we should use with the passenger (an unknown value is treated as `en`)"
    },
    "notes": {
      "type": "string",
      "maxLength": 1000,
      "description": "Flight number, luggage, a child seat request and the like (longer text is cut to 1000 characters)"
    },
    "agent": {
      "type": "string",
      "maxLength": 80,
      "description": "If 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."
    }
  },
  "required": [
    "dir",
    "point",
    "date",
    "time",
    "car",
    "pax",
    "name",
    "phone",
    "currency"
  ]
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "number": {
      "type": "integer",
      "description": "The booking number"
    },
    "status": {
      "type": "string",
      "enum": [
        "received"
      ]
    },
    "confirmed": {
      "type": "boolean",
      "description": "Always false here: a dispatcher confirms later"
    },
    "message": {
      "type": "string",
      "description": "A sentence for the passenger, in `lang`"
    },
    "booking": {
      "type": "object",
      "description": "What was booked, as the server understood it",
      "properties": {
        "dir": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "time": {
          "type": "string"
        },
        "point": {
          "type": "string",
          "description": "The departure point's name in `lang`"
        },
        "car": {
          "type": "string"
        },
        "pax": {
          "type": "integer"
        },
        "total": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "price_confirmed_by_dispatcher": {
          "type": "boolean",
          "description": "True when the final price is set by the dispatcher (address pick-up or a time outside the timetable)"
        }
      }
    },
    "status_token": {
      "type": "string"
    },
    "status_url": {
      "type": "string",
      "format": "uri"
    },
    "telegram": {
      "type": "string",
      "format": "uri",
      "description": "A link the passenger can open to get the confirmation in Telegram"
    }
  }
}
🟢get_booking_status(status_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status_token": {
      "type": "string",
      "minLength": 1,
      "description": "The status_token from create_booking"
    }
  },
  "required": [
    "status_token"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "number": {
      "type": "integer"
    },
    "status": {
      "type": "string",
      "enum": [
        "received",
        "confirmed",
        "completed",
        "cancelled"
      ]
    },
    "confirmed": {
      "type": "boolean"
    },
    "dir": {
      "type": "string"
    },
    "date": {
      "type": "string"
    },
    "time": {
      "type": "string"
    },
    "pax": {
      "type": "integer"
    }
  }
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet3 Tools