Koskamo

Georgia MCP

Georgia MCP is an open-source Model Context Protocol server that provides read-only access to various Georgian public datasets. It aggregates data from official sources like the National Bank of Georgia, Tbilisi Transport Company, and Geostat, allowing AI assistants to answer queries about exchange rates, fuel prices, public transit schedules, postal codes, and air quality. The server ensures factual accuracy by naming sources and timestamps for every response.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Georgia MCP logo, by ABGEOCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by ABGEO
You need:No account. The hosted server needs no sign-in and no key.A custom server needs a paid plan.
MCP endpoint (Streamable HTTP)
https://geo-mcp.abgeo.cloud/mcp
Vendor documentation

What its tools do

26 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

26 of 26 have a description · 26 of 26 declare behavior hints · 26 of 26 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Check official USD to GEL exchange rates
  • Find the cheapest fuel prices across Georgia
  • Query Tbilisi public transit routes and timetables
  • Retrieve postal codes and air quality statistics

Source and maintenance

Community listingRegistry 1.1.2
Maintenance checked

Protocol and capabilities

Server
georgia-mcp v1.1.2
MCP protocol negotiated in check
2025-11-25
Tools
26 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Tools

26 advertised

air_get_quality — Get the air quality in Georgia
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the newest air quality readings of the automatic stations of the National Environmental Agency of Georgia (NEA), for a city, one station, or every station. Each reading gives PM10, PM2.5, NO2, O3, SO2, or CO, its concentration (µg/m³, CO in mg/m³), its hour, and its level: good, fair, moderate, poor, or very_poor. A station level is its worst reading. Stations come worst first. A reading older than 24 hours is left out. The NEA stamps some readings a few hours ahead of the clock: the time is as published. Data from the NEA.

air_get_quality input schema
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "A city of Georgia in English or Georgian, for example Tbilisi or რუსთავი. Leave city and station empty for every station."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum count of stations, 1 to 100. The default is 25."
    },
    "station": {
      "type": "string",
      "description": "A station code of the NEA, for example TSRT. Give a city or a station, not both."
    },
    "language": {
      "type": "string",
      "description": "The language of the addresses and the cities: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
air_get_quality output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "total",
    "stations"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the readings, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when the NEA did not answer and the server returns readings it read before."
    },
    "total": {
      "type": "integer",
      "description": "The count of matching stations. More than the count of stations when the limit cut the list."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: National Environmental Agency."
    },
    "stations": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "address",
          "city",
          "lat",
          "lon",
          "readings"
        ],
        "properties": {
          "lat": {
            "type": "number",
            "description": "The latitude, in degrees."
          },
          "lon": {
            "type": "number",
            "description": "The longitude, in degrees."
          },
          "city": {
            "type": "string",
            "description": "The city or the municipality of the station."
          },
          "code": {
            "type": "string",
            "description": "The station code of the NEA."
          },
          "level": {
            "type": "string",
            "description": "The worst level of the readings: good, fair, moderate, poor, or very_poor. Empty when no reading has a level."
          },
          "address": {
            "type": "string",
            "description": "The address of the station."
          },
          "readings": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "pollutant",
                "value",
                "unit",
                "time"
              ],
              "properties": {
                "time": {
                  "type": "string",
                  "description": "The hour of the reading as the NEA publishes it, RFC 3339 with +04:00."
                },
                "unit": {
                  "type": "string",
                  "description": "µg/m³, or mg/m³ for CO."
                },
                "level": {
                  "type": "string",
                  "description": "good, fair, moderate, poor, or very_poor. Empty for a negative value."
                },
                "value": {
                  "type": "string",
                  "description": "The concentration as a decimal string, as the NEA publishes it. It can be negative."
                },
                "pollutant": {
                  "type": "string",
                  "description": "PM10, PM2.5, NO2, O3, SO2, or CO."
                }
              },
              "additionalProperties": false
            },
            "description": "The newest reading of each pollutant, less than 24 hours old. Empty when the station sent none."
          }
        },
        "additionalProperties": false
      },
      "description": "The stations, the worst level first. A station with no level comes last."
    }
  },
  "additionalProperties": false
}
air_get_quality annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
air_list_history — List the air quality history of a station
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the hourly readings of one station of the National Environmental Agency of Georgia (NEA) over at most 7 days of the last 7, newest first, with the level of each reading. The default is the last 24 hours. Call air_get_quality first to find the station code. The NEA stamps some readings a few hours ahead of the clock: the time is as published. Data from the NEA.

air_list_history input schema
{
  "type": "object",
  "required": [
    "station"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "The last date of the period, YYYY-MM-DD. At most 7 days with from, counted with both ends."
    },
    "from": {
      "type": "string",
      "description": "The first date of the period, YYYY-MM-DD, at most 7 days ago. Give from and to, or neither for the last 24 hours."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum count of readings of each pollutant, newest first, 1 to 100. The default is 24."
    },
    "station": {
      "type": "string",
      "description": "A station code of the NEA, for example TSRT."
    },
    "language": {
      "type": "string",
      "description": "The language of the address and the city: ka or en. The default is en."
    },
    "pollutant": {
      "type": "string",
      "description": "One pollutant: PM10, PM2.5, NO2, O3, SO2, or CO. The default is every pollutant of the station."
    }
  },
  "additionalProperties": false
}
air_list_history output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "code",
    "address",
    "city",
    "from",
    "to",
    "series"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "The last hour of the period, RFC 3339. With no dates, the hour of the newest reading when it is ahead of the clock."
    },
    "city": {
      "type": "string",
      "description": "The city or the municipality of the station."
    },
    "code": {
      "type": "string",
      "description": "The station code of the NEA."
    },
    "from": {
      "type": "string",
      "description": "The first hour of the period, RFC 3339."
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the readings, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when the NEA did not answer and the server returns readings it read before."
    },
    "series": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "pollutant",
          "unit",
          "total",
          "readings"
        ],
        "properties": {
          "unit": {
            "type": "string",
            "description": "µg/m³, or mg/m³ for CO."
          },
          "total": {
            "type": "integer",
            "description": "The count of readings in the period. More than the count of readings when the limit cut the list."
          },
          "readings": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "value",
                "time"
              ],
              "properties": {
                "time": {
                  "type": "string",
                  "description": "The hour of the reading, RFC 3339 with +04:00."
                },
                "level": {
                  "type": "string",
                  "description": "good, fair, moderate, poor, or very_poor. Empty for a negative value."
                },
                "value": {
                  "type": "string",
                  "description": "The concentration as a decimal string, as the NEA publishes it."
                }
              },
              "additionalProperties": false
            },
            "description": "The readings, newest first."
          },
          "pollutant": {
            "type": "string",
            "description": "PM10, PM2.5, NO2, O3, SO2, or CO."
          }
        },
        "additionalProperties": false
      },
      "description": "One series for each pollutant."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: National Environmental Agency."
    },
    "address": {
      "type": "string",
      "description": "The address of the station."
    }
  },
  "additionalProperties": false
}
air_list_history annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
cinema_get_seat_map — Get the seat map of a session of Cavea
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the seats of the hall of one session of Cavea that has not started: each row, each seat with its class, a mark for a taken seat, and a mark for special needs. Gives the count of free seats and the price in lari of each seat class. The server reads the map at each call. It reserves no seat. A person buys the ticket on cavea.ge. Data from the web site of Cavea, cavea.ge.

cinema_get_seat_map input schema
{
  "type": "object",
  "required": [
    "session"
  ],
  "properties": {
    "session": {
      "type": "string",
      "description": "The session code from cinema_list_sessions, for example cag_5/27-10-2026/22:15."
    },
    "language": {
      "type": "string",
      "description": "The language of the names and the texts: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
cinema_get_seat_map output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "session",
    "classes",
    "rows"
  ],
  "properties": {
    "rows": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "row",
          "seats"
        ],
        "properties": {
          "row": {
            "type": "string",
            "description": "The row label."
          },
          "seats": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "number",
                "class",
                "taken"
              ],
              "properties": {
                "class": {
                  "type": "string",
                  "description": "The seat class."
                },
                "taken": {
                  "type": "boolean",
                  "description": "True when Cavea marks the seat as taken. A person cannot buy it."
                },
                "number": {
                  "type": "integer",
                  "description": "The seat number."
                },
                "special_needs": {
                  "type": "boolean",
                  "description": "True for a seat for a person with special needs."
                }
              },
              "additionalProperties": false
            },
            "description": "The seats of the row, by number."
          }
        },
        "additionalProperties": false
      },
      "description": "The rows, in the order of Cavea."
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the seats, RFC 3339."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Cavea."
    },
    "classes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "class",
          "seats",
          "free"
        ],
        "properties": {
          "free": {
            "type": "integer",
            "description": "The count of seats of the class that are not taken."
          },
          "class": {
            "type": "string",
            "description": "The seat class: economy, standard, vip, or status."
          },
          "price": {
            "type": "string",
            "description": "The price of one ticket in lari, as a decimal string."
          },
          "seats": {
            "type": "integer",
            "description": "The count of seats of the class."
          }
        },
        "additionalProperties": false
      },
      "description": "Each seat class of the hall, with its price and its free seats."
    },
    "session": {
      "type": "object",
      "required": [
        "code",
        "movie_code",
        "movie_name",
        "cinema_code",
        "cinema_name",
        "hall",
        "start",
        "audio_language",
        "formats",
        "prices"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "The session code, for cinema_get_seat_map."
        },
        "hall": {
          "type": "string",
          "description": "The hall: a number or a name, for example 5 or IMAX."
        },
        "start": {
          "type": "string",
          "description": "The start of the session, RFC 3339 with the offset of Tbilisi."
        },
        "prices": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "object",
            "required": [
              "class",
              "price"
            ],
            "properties": {
              "class": {
                "type": "string",
                "description": "The seat class: economy, standard, vip, or status."
              },
              "price": {
                "type": "string",
                "description": "The price of one ticket in lari, as a decimal string."
              }
            },
            "additionalProperties": false
          },
          "description": "The price of each seat class. Standard only when the request has no movie."
        },
        "formats": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "The formats of the session. Empty for a 2D session."
        },
        "occupancy": {
          "type": "string",
          "description": "many_seats, filling_up, or almost_sold_out."
        },
        "movie_code": {
          "type": "string",
          "description": "The code of the movie."
        },
        "movie_name": {
          "type": "string",
          "description": "The name of the movie."
        },
        "cinema_code": {
          "type": "string",
          "description": "The code of the cinema."
        },
        "cinema_name": {
          "type": "string",
          "description": "The name of the cinema."
        },
        "audio_language": {
          "type": "string",
          "description": "The language of the sound: ka or en."
        },
        "subtitle_language": {
          "type": "string",
          "description": "The language of the subtitles: ka or en. Absent when the session has none."
        }
      },
      "description": "The session. It has no occupancy level.",
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
cinema_get_seat_map annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
cinema_list_cinemas — List the cinemas of Cavea
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Lists the open cinemas of Cavea, in Tbilisi and Batumi. Returns the code, the name, the city, and the address of each cinema. Use the code in cinema_list_sessions. Data from the web site of Cavea, cavea.ge.

cinema_list_cinemas input schema
{
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "description": "The language of the names and the texts: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
cinema_list_cinemas output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "cinemas"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the cinemas, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Cavea did not answer and the server returns data it read before."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Cavea."
    },
    "cinemas": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "name",
          "city",
          "address"
        ],
        "properties": {
          "city": {
            "type": "string",
            "description": "The city of the cinema, in English."
          },
          "code": {
            "type": "string",
            "description": "The code of the cinema, for example east_point."
          },
          "name": {
            "type": "string",
            "description": "The name of the cinema."
          },
          "address": {
            "type": "string",
            "description": "The street address of the cinema, in English."
          }
        },
        "additionalProperties": false
      },
      "description": "The open cinemas, in the order of Cavea."
    }
  },
  "additionalProperties": false
}
cinema_list_cinemas annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
cinema_list_movies — List the movies of Cavea
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Lists the movies that Cavea shows now, or the movies coming soon. Returns the code, the name, the genres, the duration in minutes, the age rating, the premiere, the directors, the actors, and a description of each movie. Use the code in cinema_list_sessions. Data from the web site of Cavea, cavea.ge.

cinema_list_movies input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "description": "The maximum count of movies, 1 to 100. The default is 50."
    },
    "status": {
      "type": "string",
      "description": "now_showing or coming_soon. The default is now_showing."
    },
    "language": {
      "type": "string",
      "description": "The language of the names and the texts: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
cinema_list_movies output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "total",
    "movies"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the movies, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Cavea did not answer and the server returns data it read before."
    },
    "total": {
      "type": "integer",
      "description": "The count of movies that matched. More than the count of movies when the limit cut the list."
    },
    "movies": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "name",
          "status",
          "duration_minutes",
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "The page of the movie on cavea.ge, where a person buys a ticket."
          },
          "code": {
            "type": "string",
            "description": "The code of the movie, for example street-fighter."
          },
          "name": {
            "type": "string",
            "description": "The name of the movie."
          },
          "actors": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The main actors."
          },
          "genres": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The genres of the movie."
          },
          "status": {
            "type": "string",
            "description": "now_showing or coming_soon. A movie before its premiere date is coming_soon."
          },
          "premiere": {
            "type": "string",
            "description": "The premiere in Georgia: YYYY-MM-DD, or the year only."
          },
          "directors": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The directors."
          },
          "age_rating": {
            "type": "string",
            "description": "The age rating of the MPAA, for example PG-13."
          },
          "description": {
            "type": "string",
            "description": "A short description of the story."
          },
          "duration_minutes": {
            "type": "integer",
            "description": "The duration of the movie, in minutes."
          }
        },
        "additionalProperties": false
      },
      "description": "The movies, in the order of Cavea."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Cavea."
    }
  },
  "additionalProperties": false
}
cinema_list_movies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
cinema_list_sessions — List the sessions of Cavea
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Lists the sessions of the movies of Cavea on one date that have not started, in the order of the start time. Narrow the list by a movie, a cinema, an audio language, or a format. Returns the cinema, the hall, the start time, the languages, the formats, the price in lari, and the occupancy level of each session. With a movie, each session has the price of each seat class. With no movie, it has the price of the class Standard. Use the session code in cinema_get_seat_map. Data from the web site of Cavea, cavea.ge.

cinema_list_sessions input schema
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "The date in Tbilisi, YYYY-MM-DD. The default is today. Cavea publishes about 3 days."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum count of sessions, 1 to 100. The default is 30."
    },
    "movie": {
      "type": "string",
      "description": "The code of a movie from cinema_list_movies or cinema_search_movies."
    },
    "cinema": {
      "type": "string",
      "description": "The code of a cinema from cinema_list_cinemas."
    },
    "format": {
      "type": "string",
      "description": "One format: 3d, imax, dolby_atmos, screenx, or infinity_vision."
    },
    "language": {
      "type": "string",
      "description": "The language of the names and the texts: ka or en. The default is en."
    },
    "audio_language": {
      "type": "string",
      "description": "The language of the sound: ka or en."
    }
  },
  "additionalProperties": false
}
cinema_list_sessions output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "total",
    "sessions"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the sessions, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Cavea did not answer and the server returns sessions it read before."
    },
    "total": {
      "type": "integer",
      "description": "The count of sessions that matched. More than the count of sessions when the limit cut the list."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Cavea."
    },
    "sessions": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "movie_code",
          "movie_name",
          "cinema_code",
          "cinema_name",
          "hall",
          "start",
          "audio_language",
          "formats",
          "prices"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "The session code, for cinema_get_seat_map."
          },
          "hall": {
            "type": "string",
            "description": "The hall: a number or a name, for example 5 or IMAX."
          },
          "start": {
            "type": "string",
            "description": "The start of the session, RFC 3339 with the offset of Tbilisi."
          },
          "prices": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "class",
                "price"
              ],
              "properties": {
                "class": {
                  "type": "string",
                  "description": "The seat class: economy, standard, vip, or status."
                },
                "price": {
                  "type": "string",
                  "description": "The price of one ticket in lari, as a decimal string."
                }
              },
              "additionalProperties": false
            },
            "description": "The price of each seat class. Standard only when the request has no movie."
          },
          "formats": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The formats of the session. Empty for a 2D session."
          },
          "occupancy": {
            "type": "string",
            "description": "many_seats, filling_up, or almost_sold_out."
          },
          "movie_code": {
            "type": "string",
            "description": "The code of the movie."
          },
          "movie_name": {
            "type": "string",
            "description": "The name of the movie."
          },
          "cinema_code": {
            "type": "string",
            "description": "The code of the cinema."
          },
          "cinema_name": {
            "type": "string",
            "description": "The name of the cinema."
          },
          "audio_language": {
            "type": "string",
            "description": "The language of the sound: ka or en."
          },
          "subtitle_language": {
            "type": "string",
            "description": "The language of the subtitles: ka or en. Absent when the session has none."
          }
        },
        "additionalProperties": false
      },
      "description": "The sessions, in the order of the start time, then the cinema code."
    },
    "occupancy_note": {
      "type": "string",
      "description": "Why the sessions have no occupancy level."
    },
    "occupancy_as_of": {
      "type": "string",
      "description": "The instant at which the server read the occupancy levels, RFC 3339."
    }
  },
  "additionalProperties": false
}
cinema_list_sessions annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
cinema_search_movies — Search the movies of Cavea
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Finds the movies of Cavea, now showing or coming soon, by a part of the English name. Give the text in English: Cavea does not match a Georgian name. Returns the code, the name, the status, the duration in minutes, and the age rating of each movie. Data from the web site of Cavea, cavea.ge.

cinema_search_movies input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "description": "The maximum count of movies, 1 to 100. The default is 20."
    },
    "query": {
      "type": "string",
      "description": "A part of the English name of the movie, 2 to 100 characters."
    },
    "language": {
      "type": "string",
      "description": "The language of the names and the texts: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
cinema_search_movies output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "total",
    "movies"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the movies, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Cavea did not answer and the server returns data it read before."
    },
    "total": {
      "type": "integer",
      "description": "The count of movies that matched. More than the count of movies when the limit cut the list."
    },
    "movies": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "name",
          "status",
          "duration_minutes",
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "The page of the movie on cavea.ge, where a person buys a ticket."
          },
          "code": {
            "type": "string",
            "description": "The code of the movie, for example street-fighter."
          },
          "name": {
            "type": "string",
            "description": "The name of the movie."
          },
          "actors": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The main actors."
          },
          "genres": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The genres of the movie."
          },
          "status": {
            "type": "string",
            "description": "now_showing or coming_soon. A movie before its premiere date is coming_soon."
          },
          "premiere": {
            "type": "string",
            "description": "The premiere in Georgia: YYYY-MM-DD, or the year only."
          },
          "directors": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The directors."
          },
          "age_rating": {
            "type": "string",
            "description": "The age rating of the MPAA, for example PG-13."
          },
          "description": {
            "type": "string",
            "description": "A short description of the story."
          },
          "duration_minutes": {
            "type": "integer",
            "description": "The duration of the movie, in minutes."
          }
        },
        "additionalProperties": false
      },
      "description": "The movies, in the order of Cavea."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Cavea."
    }
  },
  "additionalProperties": false
}
cinema_search_movies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
fuel_get_prices — Fuel prices of Georgian fuel companies
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the current fuel prices of Georgian fuel companies: the price in GEL of one unit of each product. Use it for the price of petrol, diesel, or gas at a company today, or to compare companies. Each product has a grade that every company shares: regular (litre), premium (litre), super (litre), super_100 (litre), diesel (litre), cng (cubic_metre), lpg (litre), other (litre). price: the price in GEL of one unit at a station with an attendant. self_service_price: the price in GEL of one unit at a self-service station of the same company. A product with no self_service_price has none. The fuel companies of this server: connect (Connect, publishes no effective date), gulf (Gulf), lukoil (Lukoil), neogas (Neogas, publishes no effective date), portal (Portal, publishes no effective date), rompetrol (Rompetrol, publishes no effective date), socar (SOCAR, publishes no effective date), wissol (Wissol). The prices are of today. The tool has no history.

fuel_get_prices input schema
{
  "type": "object",
  "properties": {
    "grades": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Grades: regular, premium, super, super_100, diesel, cng, lpg, other. Empty asks every grade."
    },
    "language": {
      "type": "string",
      "description": "The language of the product names: ka or en. The default is en."
    },
    "companies": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Fuel company codes. Empty asks every company. The description of the tool lists the codes."
    }
  },
  "additionalProperties": false
}
fuel_get_prices output schema
{
  "type": "object",
  "required": [
    "meaning",
    "companies"
  ],
  "properties": {
    "meaning": {
      "type": "string",
      "description": "How to read price and self_service_price."
    },
    "companies": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "company",
          "source",
          "as_of",
          "stale",
          "prices"
        ],
        "properties": {
          "as_of": {
            "type": "string",
            "description": "The instant at which the server read the prices, RFC 3339. The company publishes no instant."
          },
          "stale": {
            "type": "boolean",
            "description": "True when the company did not answer and the server returns prices it read before."
          },
          "prices": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "product",
                "grade",
                "unit",
                "price"
              ],
              "properties": {
                "unit": {
                  "type": "string",
                  "description": "The unit of each price: litre, or cubic_metre for cng."
                },
                "grade": {
                  "type": "string",
                  "description": "The grade of the product, the same for every company."
                },
                "price": {
                  "type": "string",
                  "description": "The standard price in GEL of one unit, as a decimal string."
                },
                "product": {
                  "type": "string",
                  "description": "The name of the product at the company."
                },
                "effective_date": {
                  "type": "string",
                  "description": "The date from which the company applies the prices, YYYY-MM-DD. Absent when the company publishes no date: as_of then gives the age of the price."
                },
                "self_service_price": {
                  "type": "string",
                  "description": "The price in GEL of one unit at a self-service station of the company, as a decimal string. Absent when the company publishes none."
                }
              },
              "additionalProperties": false
            },
            "description": "The prices of the products, sorted by grade."
          },
          "source": {
            "type": "string",
            "description": "The name of the fuel company."
          },
          "company": {
            "type": "string",
            "description": "The company code."
          },
          "missing": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The requested grades that the company does not sell."
          }
        },
        "additionalProperties": false
      },
      "description": "The prices of each fuel company that answered, sorted by company code."
    },
    "unavailable": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "company",
          "source"
        ],
        "properties": {
          "source": {
            "type": "string",
            "description": "The name of the fuel company."
          },
          "company": {
            "type": "string",
            "description": "The company code."
          }
        },
        "additionalProperties": false
      },
      "description": "The fuel companies that did not answer."
    }
  },
  "additionalProperties": false
}
fuel_get_prices annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
offers_get_offer — Terms of a card offer
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the full conditions of one offer of a Georgian bank. Use the bank and the id from offers_search_offers. Give the person the url of the offer with the conditions.

offers_get_offer input schema
{
  "type": "object",
  "required": [
    "bank",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "The offer id from offers_search_offers."
    },
    "bank": {
      "type": "string",
      "description": "The bank code of the offer."
    },
    "language": {
      "type": "string",
      "description": "The language of the texts: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
offers_get_offer output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "offer",
    "terms"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the terms, RFC 3339."
    },
    "offer": {
      "type": "object",
      "required": [
        "bank",
        "id",
        "title",
        "benefit",
        "kinds",
        "categories",
        "tiers",
        "url"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The offer id of the bank. offers_get_offer takes it."
        },
        "url": {
          "type": "string",
          "description": "The page of the offer at the bank. Give it to the person with each offer that you name."
        },
        "bank": {
          "type": "string",
          "description": "The bank code."
        },
        "cards": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "object",
            "required": [
              "code",
              "name"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "The card code. cards of offers_search_offers takes it."
              },
              "name": {
                "type": "string",
                "description": "The name of the card at the bank."
              }
            },
            "additionalProperties": false
          },
          "description": "The cards that the offer names. Absent: every card of the tiers."
        },
        "kinds": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "The benefit kinds that the bank states in a field. other: the bank states none."
        },
        "tiers": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "The customer tiers that can use the offer."
        },
        "title": {
          "type": "string",
          "description": "The title of the offer."
        },
        "benefit": {
          "type": "string",
          "description": "The text of the bank that states the benefit. Read the percent, the cap, and the conditions from it."
        },
        "partner": {
          "type": "string",
          "description": "The company that gives the benefit. Absent when the bank names none."
        },
        "end_date": {
          "type": "string",
          "description": "The last date of the offer, YYYY-MM-DD. Absent when the bank publishes none."
        },
        "categories": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "The offer categories, the same for every bank."
        },
        "start_date": {
          "type": "string",
          "description": "The first date of the offer, YYYY-MM-DD. Absent when the bank publishes none."
        },
        "bank_categories": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "The names of the categories at the bank."
        }
      },
      "description": "The offer.",
      "additionalProperties": false
    },
    "stale": {
      "type": "boolean",
      "description": "True when the bank did not answer and the server returns terms it read before."
    },
    "terms": {
      "type": "string",
      "description": "The full conditions of the offer, as the bank writes them."
    },
    "source": {
      "type": "string",
      "description": "The name of the bank."
    }
  },
  "additionalProperties": false
}
offers_get_offer annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
offers_search_offers — Card offers of Georgian banks
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Finds the current offers that Georgian banks give to card holders at partners: discounts, cashback, and points. Filters by bank, customer tier, category, benefit kind, card, and period. For "this month", give the first and the last date of the month. When a bank has a next_offset, call again with that offset to read more. The benefit is the text of the bank. Compare the banks by reading it. Give the person the url of each offer that you name. benefit is the text of the bank. The server reads no number from it: read the percent, the cap, and the conditions from the text. kinds come from a field of the bank, and other means that the bank states none. tiers: standard is every customer, premium the premium package (SOLO at BOG), private the private banking (Wealth Management at BOG), youth the pupils and the students. The banks of this server: bog (Bank of Georgia), liberty (Liberty Bank), tbc (TBC Bank). The card codes of each bank: bog: amex (Amex), mastercard (Mastercard), mastercard_world_elite (Mastercard World Elite), plus (PLUS), scool_card (sCool Card), solo (SOLO), student_card (Student Card), super_plus (Super PLUS), teacher_card (Teacher Card), visa (Visa), visa_infinite (Visa Infinite), visa_platinum (Visa Platinum), visa_signature (Visa Signature); liberty: mastercard (Mastercard), top_card_black (Top|Card Black Edition), visa (Visa); tbc: concept_card (TBC Concept Card), credit_card (Credit Card), crypto (Crypto), installment (Installment), mastercard (Mastercard), pay_later (Pay Later), pupil_card (Pupil's Card), tbc_card (TBC Card), travel_card (Travel Card), visa (Visa).

offers_search_offers input schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "description": "The last date of the period, YYYY-MM-DD, at most 366 days after from. The default is from."
    },
    "from": {
      "type": "string",
      "description": "The first date of the period, YYYY-MM-DD. The default is today in Tbilisi."
    },
    "banks": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Bank codes. Empty asks every bank. The description lists the codes."
    },
    "cards": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Card codes of the banks. An offer that names no card matches every card. The description lists the codes of each bank."
    },
    "kinds": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Benefit kinds: discount, cashback, points, other."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum count of offers for each bank, 1 to 30. The default is 10."
    },
    "query": {
      "type": "string",
      "description": "A text to find in the title, the partner, the benefit, or the bank category, 1 to 100 characters."
    },
    "tiers": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Customer tiers: standard, premium, private, youth. An offer matches when it has one of them."
    },
    "offset": {
      "type": "integer",
      "description": "The count of matching offers of each bank to skip, 0 or more. Give the next_offset of a bank to read its next page. The default is 0."
    },
    "language": {
      "type": "string",
      "description": "The language of the texts: ka or en. The default is en."
    },
    "categories": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Offer categories: dining, leisure, travel, health_beauty, auto, transport, shopping, electronics, home, education, kids, entertainment, real_estate, other."
    }
  },
  "additionalProperties": false
}
offers_search_offers output schema
{
  "type": "object",
  "required": [
    "meaning",
    "banks"
  ],
  "properties": {
    "banks": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "bank",
          "source",
          "as_of",
          "stale",
          "total",
          "offers"
        ],
        "properties": {
          "bank": {
            "type": "string",
            "description": "The bank code."
          },
          "as_of": {
            "type": "string",
            "description": "The instant at which the server read the offers, RFC 3339. The bank publishes no instant."
          },
          "stale": {
            "type": "boolean",
            "description": "True when the bank did not answer and the server returns offers it read before."
          },
          "total": {
            "type": "integer",
            "description": "The count of every matching offer of the bank. offers holds at most limit of them."
          },
          "offers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "bank",
                "id",
                "title",
                "benefit",
                "kinds",
                "categories",
                "tiers",
                "url"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The offer id of the bank. offers_get_offer takes it."
                },
                "url": {
                  "type": "string",
                  "description": "The page of the offer at the bank. Give it to the person with each offer that you name."
                },
                "bank": {
                  "type": "string",
                  "description": "The bank code."
                },
                "cards": {
                  "type": [
                    "null",
                    "array"
                  ],
                  "items": {
                    "type": "object",
                    "required": [
                      "code",
                      "name"
                    ],
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "The card code. cards of offers_search_offers takes it."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the card at the bank."
                      }
                    },
                    "additionalProperties": false
                  },
                  "description": "The cards that the offer names. Absent: every card of the tiers."
                },
                "kinds": {
                  "type": [
                    "null",
                    "array"
                  ],
                  "items": {
                    "type": "string"
                  },
                  "description": "The benefit kinds that the bank states in a field. other: the bank states none."
                },
                "tiers": {
                  "type": [
                    "null",
                    "array"
                  ],
                  "items": {
                    "type": "string"
                  },
                  "description": "The customer tiers that can use the offer."
                },
                "title": {
                  "type": "string",
                  "description": "The title of the offer."
                },
                "benefit": {
                  "type": "string",
                  "description": "The text of the bank that states the benefit. Read the percent, the cap, and the conditions from it."
                },
                "partner": {
                  "type": "string",
                  "description": "The company that gives the benefit. Absent when the bank names none."
                },
                "end_date": {
                  "type": "string",
                  "description": "The last date of the offer, YYYY-MM-DD. Absent when the bank publishes none."
                },
                "categories": {
                  "type": [
                    "null",
                    "array"
                  ],
                  "items": {
                    "type": "string"
                  },
                  "description": "The offer categories, the same for every bank."
                },
                "start_date": {
                  "type": "string",
                  "description": "The first date of the offer, YYYY-MM-DD. Absent when the bank publishes none."
                },
                "bank_categories": {
                  "type": [
                    "null",
                    "array"
                  ],
                  "items": {
                    "type": "string"
                  },
                  "description": "The names of the categories at the bank."
                }
              },
              "additionalProperties": false
            },
            "description": "The matching offers, the soonest end first."
          },
          "source": {
            "type": "string",
            "description": "The name of the bank."
          },
          "next_offset": {
            "type": "integer",
            "description": "The offset of the next page of the bank. Absent when offers holds the last matching offer."
          }
        },
        "additionalProperties": false
      },
      "description": "The offers of each bank that answered, sorted by bank code."
    },
    "meaning": {
      "type": "string",
      "description": "How to read the offers."
    },
    "unavailable": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "bank",
          "source"
        ],
        "properties": {
          "bank": {
            "type": "string",
            "description": "The bank code."
          },
          "source": {
            "type": "string",
            "description": "The name of the bank."
          }
        },
        "additionalProperties": false
      },
      "description": "The banks that did not answer."
    }
  },
  "additionalProperties": false
}
offers_search_offers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
postal_search_codes — Search the postal codes of Georgia
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Finds the postal codes of Georgian Post for an address, a street, a town, or a village of Georgia, by text in Georgian or English. Returns each matching address with its 4-digit postal code and its district. Georgian Post gives a postal code for each street in Tbilisi, Batumi, and Kutaisi only. For another town or a village, search its name. Data from the web page of Georgian Post.

postal_search_codes input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "description": "The maximum count of addresses, 1 to 100. The default is 20."
    },
    "query": {
      "type": "string",
      "description": "An address, a street, a town, or a village of Georgia, in Georgian or English. 3 to 100 characters."
    },
    "language": {
      "type": "string",
      "description": "The language of the addresses: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
postal_search_codes output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "total",
    "addresses"
  ],
  "properties": {
    "note": {
      "type": "string",
      "description": "How to search again, when the list is empty."
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the postal codes, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Georgian Post did not answer and the server returns postal codes it read before."
    },
    "total": {
      "type": "integer",
      "description": "The count of addresses that Georgian Post matched. More than the count of addresses when the limit cut the list."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Georgian Post."
    },
    "addresses": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "postal_code",
          "address",
          "district"
        ],
        "properties": {
          "address": {
            "type": "string",
            "description": "The address as Georgian Post writes it: the settlement, then the street. A part in parentheses limits the postal code to some house numbers."
          },
          "district": {
            "type": "string",
            "description": "The city or the municipality under which Georgian Post groups the address."
          },
          "postal_code": {
            "type": "string",
            "description": "The postal code: 4 digits as a string. It can start with 0."
          }
        },
        "additionalProperties": false
      },
      "description": "The matching addresses, in the order of Georgian Post."
    }
  },
  "additionalProperties": false
}
postal_search_codes annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
rates_get_commercial_rates — Commercial exchange rates of Georgian banks
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the current commercial exchange rates of Georgian banks: the prices in GEL at which a bank buys and sells one unit of a currency. Use it for the price of a currency at a bank today, or to compare banks. Ask for 1 to 10 currencies. buy: the price in GEL that the bank pays when you sell it one unit. sell: the price in GEL that the bank asks when you buy one unit from it. The banks of this server: basisbank (Basisbank), bog (Bank of Georgia), credo (Credo Bank), crystal (Crystal, a microfinance organization), halyk (Halyk Bank), inteli (Inteli Express, a microfinance organization), kursi (Kursi.ge, an online exchange bureau), liberty (Liberty Bank), mbc (MBC, a microfinance organization), mjc (MJC, a microfinance organization), rico (Rico Credit, a microfinance organization), scapp (Scapp, a microfinance organization), tbc (TBC Bank), terabank (Terabank). The list gives the kind of each one that is not a bank. The rates are of today. The tool has no history.

rates_get_commercial_rates input schema
{
  "type": "object",
  "required": [
    "currencies"
  ],
  "properties": {
    "banks": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Bank codes. Empty asks every bank. The description of the tool lists the codes."
    },
    "currencies": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "1 to 10 ISO 4217 codes, for example USD and EUR."
    }
  },
  "additionalProperties": false
}
rates_get_commercial_rates output schema
{
  "type": "object",
  "required": [
    "meaning",
    "banks"
  ],
  "properties": {
    "banks": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "bank",
          "source",
          "as_of",
          "stale",
          "rates"
        ],
        "properties": {
          "bank": {
            "type": "string",
            "description": "The bank code."
          },
          "as_of": {
            "type": "string",
            "description": "The oldest instant at which the server read a rate of this bank, RFC 3339. The bank publishes no instant."
          },
          "rates": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "currency",
                "buy",
                "sell"
              ],
              "properties": {
                "buy": {
                  "type": "string",
                  "description": "The price in GEL that the bank pays for one unit, as a decimal string."
                },
                "sell": {
                  "type": "string",
                  "description": "The price in GEL that the bank asks for one unit, as a decimal string."
                },
                "currency": {
                  "type": "string",
                  "description": "The ISO 4217 code."
                }
              },
              "additionalProperties": false
            },
            "description": "The commercial rates, sorted by currency."
          },
          "stale": {
            "type": "boolean",
            "description": "True when the bank did not answer and the server returns rates it read before."
          },
          "source": {
            "type": "string",
            "description": "The name of the bank."
          },
          "missing": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The requested codes that the bank does not quote."
          }
        },
        "additionalProperties": false
      },
      "description": "The rates of each bank that answered, sorted by bank code."
    },
    "meaning": {
      "type": "string",
      "description": "How to read buy and sell."
    },
    "unavailable": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "bank",
          "source"
        ],
        "properties": {
          "bank": {
            "type": "string",
            "description": "The bank code."
          },
          "source": {
            "type": "string",
            "description": "The name of the bank."
          }
        },
        "additionalProperties": false
      },
      "description": "The banks that did not answer."
    }
  },
  "additionalProperties": false
}
rates_get_commercial_rates annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
rates_get_official_rates — Official exchange rates of the NBG
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the official exchange rates of the lari that the National Bank of Georgia (NBG) sets, for one date. Use it for the rate of a currency today or on a past date, for a contract, an invoice, or a tax form. Each rate is the price in GEL of `quantity` units; `rate_per_unit` is the price of one unit. The NBG publishes the rates of each business day at about 17:00 Tbilisi time, in force from the next day until the next set. A weekend or a holiday returns the set in force on it. The official rate is indicative. It is not the price of a bank.

rates_get_official_rates input schema
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "The date in YYYY-MM-DD, in Tbilisi. Empty means today. At most the valid date of the newest set: tomorrow after about 17:00."
    },
    "language": {
      "type": "string",
      "description": "The language of the currency names: en or ka. Empty means en."
    },
    "currencies": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "ISO 4217 codes, for example USD and EUR. Empty returns every currency. At most 50."
    }
  },
  "additionalProperties": false
}
rates_get_official_rates output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "read_at",
    "stale",
    "rates"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The publication instant of the set, RFC 3339. The read instant when the set is empty."
    },
    "rates": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "currency",
          "name",
          "quantity",
          "rate",
          "rate_per_unit",
          "change",
          "valid_from"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the currency in the requested language."
          },
          "rate": {
            "type": "string",
            "description": "The price in GEL of quantity units, as a decimal string."
          },
          "change": {
            "type": "string",
            "description": "The change of rate from the previous set, signed, as a decimal string."
          },
          "currency": {
            "type": "string",
            "description": "The ISO 4217 code."
          },
          "quantity": {
            "type": "integer",
            "description": "The count of units that rate prices."
          },
          "valid_from": {
            "type": "string",
            "description": "The date from which this rate is in force, YYYY-MM-DD."
          },
          "rate_per_unit": {
            "type": "string",
            "description": "The price in GEL of one unit, as a decimal string."
          }
        },
        "additionalProperties": false
      },
      "description": "The official rates, sorted by currency."
    },
    "stale": {
      "type": "boolean",
      "description": "True when the NBG did not answer and the server returns a set it read before."
    },
    "source": {
      "type": "string",
      "description": "National Bank of Georgia."
    },
    "missing": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "The requested codes with no official rate on the date."
    },
    "read_at": {
      "type": "string",
      "description": "The instant the server read the set from the NBG, RFC 3339."
    },
    "valid_from": {
      "type": "string",
      "description": "The date from which the set is in force, YYYY-MM-DD."
    }
  },
  "additionalProperties": false
}
rates_get_official_rates annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
rates_list_official_history — Official exchange rate history of the NBG
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the official exchange rates of one currency over a period of up to 31 days, as set by the National Bank of Georgia (NBG). Use it for the movement of a currency over a week or a month. The answer holds one point for each set in force in the period, the set in force on the first day included. Each rate is the price in GEL of `quantity` units.

rates_list_official_history input schema
{
  "type": "object",
  "required": [
    "currency",
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "The last date of the period, YYYY-MM-DD. At most 31 days after from, counted with both ends."
    },
    "from": {
      "type": "string",
      "description": "The first date of the period, YYYY-MM-DD."
    },
    "currency": {
      "type": "string",
      "description": "One ISO 4217 code, for example USD."
    },
    "language": {
      "type": "string",
      "description": "The language of the currency name: en or ka. Empty means en."
    }
  },
  "additionalProperties": false
}
rates_list_official_history output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "read_at",
    "stale",
    "currency",
    "name",
    "points"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the currency in the requested language."
    },
    "as_of": {
      "type": "string",
      "description": "The publication instant of the newest point, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when one point comes from a set read before an outage of the NBG."
    },
    "points": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "currency",
          "name",
          "quantity",
          "rate",
          "rate_per_unit",
          "change",
          "valid_from"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the currency in the requested language."
          },
          "rate": {
            "type": "string",
            "description": "The price in GEL of quantity units, as a decimal string."
          },
          "change": {
            "type": "string",
            "description": "The change of rate from the previous set, signed, as a decimal string."
          },
          "currency": {
            "type": "string",
            "description": "The ISO 4217 code."
          },
          "quantity": {
            "type": "integer",
            "description": "The count of units that rate prices."
          },
          "valid_from": {
            "type": "string",
            "description": "The date from which this rate is in force, YYYY-MM-DD."
          },
          "rate_per_unit": {
            "type": "string",
            "description": "The price in GEL of one unit, as a decimal string."
          }
        },
        "additionalProperties": false
      },
      "description": "One official rate for each set in force in the period, ascending by valid_from."
    },
    "source": {
      "type": "string",
      "description": "National Bank of Georgia."
    },
    "read_at": {
      "type": "string",
      "description": "The oldest instant at which the server read a point from the NBG, RFC 3339."
    },
    "currency": {
      "type": "string",
      "description": "The ISO 4217 code."
    }
  },
  "additionalProperties": false
}
rates_list_official_history annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
stats_get_cells — Get the figures of a statistical table
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the figures of one table of Geostat for a selection: value codes, or the last values, for each dimension. A dimension with no selection takes every value. Selects at most 1000 cells. An unpublished figure is null. The title of the table names the unit. Data from Geostat.

stats_get_cells input schema
{
  "type": "object",
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "description": "The code of a table, from stats_search_tables."
    },
    "language": {
      "type": "string",
      "description": "The language of the texts: ka or en. The default is en."
    },
    "selection": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "dimension"
        ],
        "properties": {
          "last": {
            "type": "integer",
            "description": "The count of the last values of the dimension, the newest for a time dimension."
          },
          "values": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The codes of the values. Give values or last, not both."
          },
          "dimension": {
            "type": "string",
            "description": "The code of a dimension, from stats_get_table."
          }
        },
        "additionalProperties": false
      },
      "description": "The values of each dimension. A dimension that this list omits takes every value."
    }
  },
  "additionalProperties": false
}
stats_get_cells output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "table",
    "dimensions",
    "cells"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the figures, RFC 3339."
    },
    "cells": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "values",
          "figure"
        ],
        "properties": {
          "figure": {
            "type": [
              "null",
              "string"
            ],
            "description": "The figure as a decimal string, or null when Geostat did not publish it."
          },
          "values": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The text of the value of the cell on each dimension, in the order of dimensions."
          }
        },
        "additionalProperties": false
      },
      "description": "The selected cells."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Geostat did not answer and the server returns figures it read before."
    },
    "table": {
      "type": "object",
      "required": [
        "code",
        "title",
        "folder",
        "updated"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "The code of the table."
        },
        "as_of": {
          "type": "string",
          "description": "The instant at which the server read the table, RFC 3339."
        },
        "stale": {
          "type": "boolean",
          "description": "True when Geostat did not answer and the server returns a table it read before."
        },
        "title": {
          "type": "string",
          "description": "The title of the table. It often names the unit."
        },
        "folder": {
          "type": "string",
          "description": "The folder path of the table, from the subject down, as in the code. The same in both languages."
        },
        "source": {
          "type": "string",
          "description": "The source of the data: Geostat."
        },
        "updated": {
          "type": "string",
          "description": "The date on which Geostat last changed the table, YYYY-MM-DD."
        },
        "dimensions": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "object",
            "required": [
              "code",
              "text"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "The code of the dimension, for a selection."
              },
              "text": {
                "type": "string",
                "description": "The name of the dimension."
              },
              "values": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "object",
                  "required": [
                    "code",
                    "text"
                  ],
                  "properties": {
                    "code": {
                      "type": "string",
                      "description": "The code of the value, for a selection."
                    },
                    "text": {
                      "type": "string",
                      "description": "The text of the value."
                    }
                  },
                  "additionalProperties": false
                },
                "description": "The values of the dimension."
              }
            },
            "additionalProperties": false
          },
          "description": "The dimensions of the table, each with its values in the order of Geostat."
        }
      },
      "description": "The table, with no dimension values.",
      "additionalProperties": false
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Geostat."
    },
    "dimensions": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "text"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "The code of the dimension, for a selection."
          },
          "text": {
            "type": "string",
            "description": "The name of the dimension."
          },
          "values": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "code",
                "text"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "The code of the value, for a selection."
                },
                "text": {
                  "type": "string",
                  "description": "The text of the value."
                }
              },
              "additionalProperties": false
            },
            "description": "The values of the dimension."
          }
        },
        "additionalProperties": false
      },
      "description": "The dimensions of each cell, in the order of the values of a cell."
    }
  },
  "additionalProperties": false
}
stats_get_cells annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
stats_get_inflation — Get the inflation of Georgia
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the inflation of Georgia for one month, in percent: annual (to the same month of the previous year), monthly (to the previous month), the 12 month average, and core inflation. For the whole country, a city, and a price group. The default is the newest published month. Data from the consumer price index of Geostat.

stats_get_inflation input schema
{
  "type": "object",
  "properties": {
    "group": {
      "type": "string",
      "description": "The price group: total, food, alcohol_tobacco, clothing, housing, furnishings, health, transport, communication, recreation, education, restaurants, or miscellaneous. The default is total."
    },
    "month": {
      "type": "string",
      "description": "The month, YYYY-MM. The default is the newest published month."
    },
    "region": {
      "type": "string",
      "description": "georgia, tbilisi, kutaisi, batumi, gori, telavi, or zugdidi. The default is georgia."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
stats_get_inflation output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "month",
    "region",
    "group",
    "annual",
    "monthly",
    "average",
    "core",
    "tables"
  ],
  "properties": {
    "core": {
      "type": [
        "null",
        "string"
      ],
      "description": "The core inflation, in percent. Published for georgia and the group total only."
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the indices, RFC 3339."
    },
    "group": {
      "type": "object",
      "required": [
        "code",
        "name"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "The code."
        },
        "name": {
          "type": "string",
          "description": "The name in the language of the request."
        }
      },
      "description": "The price group.",
      "additionalProperties": false
    },
    "month": {
      "type": "string",
      "description": "The month, YYYY-MM."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Geostat did not answer and the server returns indices it read before."
    },
    "annual": {
      "type": [
        "null",
        "string"
      ],
      "description": "The change of prices since the same month of the previous year, in percent. Null when not published."
    },
    "region": {
      "type": "object",
      "required": [
        "code",
        "name"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "The code."
        },
        "name": {
          "type": "string",
          "description": "The name in the language of the request."
        }
      },
      "description": "The region.",
      "additionalProperties": false
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Geostat."
    },
    "tables": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "title",
          "folder",
          "updated"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "The code of the table."
          },
          "as_of": {
            "type": "string",
            "description": "The instant at which the server read the table, RFC 3339."
          },
          "stale": {
            "type": "boolean",
            "description": "True when Geostat did not answer and the server returns a table it read before."
          },
          "title": {
            "type": "string",
            "description": "The title of the table. It often names the unit."
          },
          "folder": {
            "type": "string",
            "description": "The folder path of the table, from the subject down, as in the code. The same in both languages."
          },
          "source": {
            "type": "string",
            "description": "The source of the data: Geostat."
          },
          "updated": {
            "type": "string",
            "description": "The date on which Geostat last changed the table, YYYY-MM-DD."
          },
          "dimensions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "code",
                "text"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "The code of the dimension, for a selection."
                },
                "text": {
                  "type": "string",
                  "description": "The name of the dimension."
                },
                "values": {
                  "type": [
                    "null",
                    "array"
                  ],
                  "items": {
                    "type": "object",
                    "required": [
                      "code",
                      "text"
                    ],
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "The code of the value, for a selection."
                      },
                      "text": {
                        "type": "string",
                        "description": "The text of the value."
                      }
                    },
                    "additionalProperties": false
                  },
                  "description": "The values of the dimension."
                }
              },
              "additionalProperties": false
            },
            "description": "The dimensions of the table, each with its values in the order of Geostat."
          }
        },
        "additionalProperties": false
      },
      "description": "The tables of Geostat that the answer reads, with their update dates."
    },
    "average": {
      "type": [
        "null",
        "string"
      ],
      "description": "The change of the average prices of the last 12 months over the 12 months before, in percent. Published for the group total only."
    },
    "monthly": {
      "type": [
        "null",
        "string"
      ],
      "description": "The change of prices since the previous month, in percent. Null when not published."
    }
  },
  "additionalProperties": false
}
stats_get_inflation annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
stats_get_table — Describe a statistical table of Georgia
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the title and the dimensions of one table of Geostat, with the code and the text of each value. Read it before stats_get_cells. The values of a time dimension go from the oldest to the newest. A table has no unit field: the title names it. Data from Geostat.

stats_get_table input schema
{
  "type": "object",
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "description": "The code of a table, from stats_search_tables: Social Statistics/Labour/Wages_Region.px."
    },
    "language": {
      "type": "string",
      "description": "The language of the texts: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
stats_get_table output schema
{
  "type": "object",
  "required": [
    "code",
    "title",
    "folder",
    "updated"
  ],
  "properties": {
    "code": {
      "type": "string",
      "description": "The code of the table."
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the table, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Geostat did not answer and the server returns a table it read before."
    },
    "title": {
      "type": "string",
      "description": "The title of the table. It often names the unit."
    },
    "folder": {
      "type": "string",
      "description": "The folder path of the table, from the subject down, as in the code. The same in both languages."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Geostat."
    },
    "updated": {
      "type": "string",
      "description": "The date on which Geostat last changed the table, YYYY-MM-DD."
    },
    "dimensions": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "text"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "The code of the dimension, for a selection."
          },
          "text": {
            "type": "string",
            "description": "The name of the dimension."
          },
          "values": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "code",
                "text"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "The code of the value, for a selection."
                },
                "text": {
                  "type": "string",
                  "description": "The text of the value."
                }
              },
              "additionalProperties": false
            },
            "description": "The values of the dimension."
          }
        },
        "additionalProperties": false
      },
      "description": "The dimensions of the table, each with its values in the order of Geostat."
    }
  },
  "additionalProperties": false
}
stats_get_table annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
stats_search_tables — Search the statistical tables of Georgia
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Finds the tables of Geostat, the National Statistics Office of Georgia, whose title or folder holds every word of a text: for example prices, salaries, population, GDP, and trade. Returns the code, the title, the folder, and the update date of each table, the newest first. Then call stats_get_table with a code. Data from Geostat.

stats_search_tables input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "description": "The maximum count of tables, 1 to 100. The default is 20."
    },
    "query": {
      "type": "string",
      "description": "The words to find in the title or the folder of a table, in the language of the request. 1 to 100 characters."
    },
    "language": {
      "type": "string",
      "description": "The language of the titles: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
stats_search_tables output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "total",
    "tables"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the catalog, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when Geostat did not answer the last read of the catalog."
    },
    "total": {
      "type": "integer",
      "description": "The count of tables that match. More than the count of tables when the limit cut the list."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: Geostat."
    },
    "tables": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "code",
          "title",
          "folder",
          "updated"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "The code of the table."
          },
          "as_of": {
            "type": "string",
            "description": "The instant at which the server read the table, RFC 3339."
          },
          "stale": {
            "type": "boolean",
            "description": "True when Geostat did not answer and the server returns a table it read before."
          },
          "title": {
            "type": "string",
            "description": "The title of the table. It often names the unit."
          },
          "folder": {
            "type": "string",
            "description": "The folder path of the table, from the subject down, as in the code. The same in both languages."
          },
          "source": {
            "type": "string",
            "description": "The source of the data: Geostat."
          },
          "updated": {
            "type": "string",
            "description": "The date on which Geostat last changed the table, YYYY-MM-DD."
          },
          "dimensions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "code",
                "text"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "The code of the dimension, for a selection."
                },
                "text": {
                  "type": "string",
                  "description": "The name of the dimension."
                },
                "values": {
                  "type": [
                    "null",
                    "array"
                  ],
                  "items": {
                    "type": "object",
                    "required": [
                      "code",
                      "text"
                    ],
                    "properties": {
                      "code": {
                        "type": "string",
                        "description": "The code of the value, for a selection."
                      },
                      "text": {
                        "type": "string",
                        "description": "The text of the value."
                      }
                    },
                    "additionalProperties": false
                  },
                  "description": "The values of the dimension."
                }
              },
              "additionalProperties": false
            },
            "description": "The dimensions of the table, each with its values in the order of Geostat."
          }
        },
        "additionalProperties": false
      },
      "description": "The matching tables, the newest update first."
    }
  },
  "additionalProperties": false
}
stats_search_tables annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
transit_get_route — A route of Tbilisi and its stops
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns a route of the TTC with each direction: its headsign and its stops in order.

transit_get_route input schema
{
  "type": "object",
  "required": [
    "route"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "description": "The kind, when two routes share the number: bus, minibus, metro, or cable_car."
    },
    "route": {
      "type": "string",
      "description": "The route number (385) or the route id."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
transit_get_route output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "route",
    "directions"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the route, RFC 3339."
    },
    "route": {
      "type": "object",
      "required": [
        "id",
        "number",
        "name",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The route id."
        },
        "kind": {
          "type": "string",
          "description": "bus, minibus, metro, or cable_car."
        },
        "name": {
          "type": "string",
          "description": "The name of the route, usually its two ends."
        },
        "number": {
          "type": "string",
          "description": "The route number that the vehicle shows."
        }
      },
      "description": "The route.",
      "additionalProperties": false
    },
    "stale": {
      "type": "boolean",
      "description": "True when the TTC did not answer and the server returns a route it read before."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: TTC."
    },
    "directions": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "direction",
          "headsign",
          "stops"
        ],
        "properties": {
          "stops": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "id",
                "name",
                "kind",
                "lat",
                "lon"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The stop id, for example 1:1000. Every transit tool that takes a stop accepts it."
                },
                "lat": {
                  "type": "number",
                  "description": "The latitude of the stop, in degrees."
                },
                "lon": {
                  "type": "number",
                  "description": "The longitude of the stop, in degrees."
                },
                "code": {
                  "type": "string",
                  "description": "The number on the sign of a bus stop. Absent for a station of metro or cable car."
                },
                "kind": {
                  "type": "string",
                  "description": "bus, metro, or cable_car. A minibus stops at a bus stop."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the stop."
                }
              },
              "additionalProperties": false
            },
            "description": "The stops in the order of travel."
          },
          "headsign": {
            "type": "string",
            "description": "The destination that the vehicle shows."
          },
          "direction": {
            "type": "integer",
            "description": "The direction number, for transit_get_timetable."
          }
        },
        "additionalProperties": false
      },
      "description": "Each direction of the route. A loop has one."
    }
  },
  "additionalProperties": false
}
transit_get_route annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
transit_get_timetable — Timetable of a route at a stop
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Returns the planned departure times of one direction of a route of the TTC at one stop, on a date of the current week. A time of 24:00 or later is after midnight, on the next date.

transit_get_timetable input schema
{
  "type": "object",
  "required": [
    "route",
    "stop"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "The date, YYYY-MM-DD, in the current week. The default is today in Tbilisi."
    },
    "kind": {
      "type": "string",
      "description": "The kind, when two routes share the number: bus, minibus, metro, or cable_car."
    },
    "stop": {
      "type": "string",
      "description": "The stop id or the stop code. The stop must be on the direction."
    },
    "route": {
      "type": "string",
      "description": "The route number (385) or the route id."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    },
    "direction": {
      "type": [
        "null",
        "integer"
      ],
      "description": "The direction number from transit_get_route. Required when the route has two directions."
    }
  },
  "additionalProperties": false
}
transit_get_timetable output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "route",
    "direction",
    "headsign",
    "stop",
    "date",
    "times"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "The date of the times, YYYY-MM-DD."
    },
    "stop": {
      "type": "object",
      "required": [
        "id",
        "name",
        "kind",
        "lat",
        "lon"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The stop id, for example 1:1000. Every transit tool that takes a stop accepts it."
        },
        "lat": {
          "type": "number",
          "description": "The latitude of the stop, in degrees."
        },
        "lon": {
          "type": "number",
          "description": "The longitude of the stop, in degrees."
        },
        "code": {
          "type": "string",
          "description": "The number on the sign of a bus stop. Absent for a station of metro or cable car."
        },
        "kind": {
          "type": "string",
          "description": "bus, metro, or cable_car. A minibus stops at a bus stop."
        },
        "name": {
          "type": "string",
          "description": "The name of the stop."
        }
      },
      "description": "The stop.",
      "additionalProperties": false
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the timetable, RFC 3339."
    },
    "route": {
      "type": "object",
      "required": [
        "id",
        "number",
        "name",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The route id."
        },
        "kind": {
          "type": "string",
          "description": "bus, minibus, metro, or cable_car."
        },
        "name": {
          "type": "string",
          "description": "The name of the route, usually its two ends."
        },
        "number": {
          "type": "string",
          "description": "The route number that the vehicle shows."
        }
      },
      "description": "The route.",
      "additionalProperties": false
    },
    "stale": {
      "type": "boolean",
      "description": "True when the TTC did not answer and the server returns a timetable it read before."
    },
    "times": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "The planned departure times, HH:MM, in order. 24:00 or later is after midnight."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: TTC."
    },
    "headsign": {
      "type": "string",
      "description": "The destination of the direction."
    },
    "direction": {
      "type": "integer",
      "description": "The direction number."
    }
  },
  "additionalProperties": false
}
transit_get_timetable annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
transit_list_arrivals — Next arrivals at a stop in Tbilisi
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Lists the next vehicles of the TTC at a stop: route number, kind, headsign, minutes from as_of, and the expected instant. live is true when the TTC tracks the vehicle; else the time comes from the timetable. With a route, lists the next vehicles of that route only.

transit_list_arrivals input schema
{
  "type": "object",
  "required": [
    "stop"
  ],
  "properties": {
    "stop": {
      "type": "string",
      "description": "The stop id (1:1000) or the stop code (1000)."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum count of arrivals, 1 to 30. The default is 10."
    },
    "route": {
      "type": "string",
      "description": "Only this route: its number (385) or its id. Empty gives the next vehicle of each route."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
transit_list_arrivals output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stop",
    "arrivals"
  ],
  "properties": {
    "note": {
      "type": "string",
      "description": "Why the list is empty."
    },
    "stop": {
      "type": "object",
      "required": [
        "id",
        "name",
        "kind",
        "lat",
        "lon"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "The stop id, for example 1:1000. Every transit tool that takes a stop accepts it."
        },
        "lat": {
          "type": "number",
          "description": "The latitude of the stop, in degrees."
        },
        "lon": {
          "type": "number",
          "description": "The longitude of the stop, in degrees."
        },
        "code": {
          "type": "string",
          "description": "The number on the sign of a bus stop. Absent for a station of metro or cable car."
        },
        "kind": {
          "type": "string",
          "description": "bus, metro, or cable_car. A minibus stops at a bus stop."
        },
        "name": {
          "type": "string",
          "description": "The name of the stop."
        }
      },
      "description": "The stop.",
      "additionalProperties": false
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the arrivals, RFC 3339. minutes count from it."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: TTC."
    },
    "arrivals": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "route",
          "kind",
          "headsign",
          "minutes",
          "expected",
          "live"
        ],
        "properties": {
          "kind": {
            "type": "string",
            "description": "bus, minibus, metro, or cable_car."
          },
          "live": {
            "type": "boolean",
            "description": "True when the TTC tracks the vehicle. False when the time comes from the timetable."
          },
          "route": {
            "type": "string",
            "description": "The route number."
          },
          "minutes": {
            "type": "integer",
            "description": "The minutes from as_of to the arrival."
          },
          "expected": {
            "type": "string",
            "description": "The expected instant of the arrival, RFC 3339."
          },
          "headsign": {
            "type": "string",
            "description": "The destination that the vehicle shows."
          }
        },
        "additionalProperties": false
      },
      "description": "The next arrivals, soonest first."
    }
  },
  "additionalProperties": false
}
transit_list_arrivals annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
transit_list_nearby_stops — Stops near a point in Tbilisi
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Lists the stops of the TTC within a distance of a point in Tbilisi, nearest first, with the distance in metres. Use transit_search_places to get the coordinates of a place.

transit_list_nearby_stops input schema
{
  "type": "object",
  "required": [
    "lat",
    "lon"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "description": "The latitude of the point, in degrees."
    },
    "lon": {
      "type": "number",
      "description": "The longitude of the point, in degrees."
    },
    "kind": {
      "type": "string",
      "description": "Only stops of this kind: bus, metro, or cable_car. Empty gives every kind."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum count of stops, 1 to 50. The default is 10."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    },
    "radius_m": {
      "type": "integer",
      "description": "The distance from the point in metres, 1 to 2000. The default is 500."
    }
  },
  "additionalProperties": false
}
transit_list_nearby_stops output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "stops"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the stops, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when the TTC did not answer and the server returns stops it read before."
    },
    "stops": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "stop",
          "distance_m"
        ],
        "properties": {
          "stop": {
            "type": "object",
            "required": [
              "id",
              "name",
              "kind",
              "lat",
              "lon"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "The stop id, for example 1:1000. Every transit tool that takes a stop accepts it."
              },
              "lat": {
                "type": "number",
                "description": "The latitude of the stop, in degrees."
              },
              "lon": {
                "type": "number",
                "description": "The longitude of the stop, in degrees."
              },
              "code": {
                "type": "string",
                "description": "The number on the sign of a bus stop. Absent for a station of metro or cable car."
              },
              "kind": {
                "type": "string",
                "description": "bus, metro, or cable_car. A minibus stops at a bus stop."
              },
              "name": {
                "type": "string",
                "description": "The name of the stop."
              }
            },
            "description": "The stop.",
            "additionalProperties": false
          },
          "distance_m": {
            "type": "integer",
            "description": "The distance from the point in metres, rounded."
          }
        },
        "additionalProperties": false
      },
      "description": "The stops within the distance, nearest first."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: TTC."
    }
  },
  "additionalProperties": false
}
transit_list_nearby_stops annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
transit_plan_trip — Plan a trip by public transport in Tbilisi
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Plans a trip by public transport of the TTC in Tbilisi between two points, given as coordinates. Returns up to 3 itineraries with each leg: walk or ride, route, stops, instants, distance in metres. Use transit_search_places to get coordinates.

transit_plan_trip input schema
{
  "type": "object",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "description": "The latitude, in degrees."
        },
        "lon": {
          "type": "number",
          "description": "The longitude, in degrees."
        }
      },
      "description": "The end point in Tbilisi.",
      "additionalProperties": false
    },
    "date": {
      "type": "string",
      "description": "The date of depart_at or arrive_by, YYYY-MM-DD. The default is today in Tbilisi."
    },
    "from": {
      "type": "object",
      "required": [
        "lat",
        "lon"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "description": "The latitude, in degrees."
        },
        "lon": {
          "type": "number",
          "description": "The longitude, in degrees."
        }
      },
      "description": "The start point in Tbilisi.",
      "additionalProperties": false
    },
    "time": {
      "type": "string",
      "description": "The time of depart_at or arrive_by, HH:MM in Tbilisi. Required with them."
    },
    "kinds": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "The kinds to ride: bus, minibus, metro, cable_car. bus and minibus go together. Empty gives every kind. A walk is always allowed."
    },
    "timing": {
      "type": "string",
      "description": "leave_now, depart_at, or arrive_by. The default is leave_now."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    },
    "preference": {
      "type": "string",
      "description": "fastest, less_walking, or fewer_transfers. The default is fastest."
    }
  },
  "additionalProperties": false
}
transit_plan_trip output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "itineraries"
  ],
  "properties": {
    "note": {
      "type": "string",
      "description": "Why the list is empty."
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the plan, RFC 3339."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: TTC."
    },
    "itineraries": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "start",
          "end",
          "duration_minutes",
          "walk_m",
          "transfers",
          "legs"
        ],
        "properties": {
          "end": {
            "type": "string",
            "description": "The instant of arrival, RFC 3339."
          },
          "legs": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "kind",
                "from",
                "to",
                "start",
                "end",
                "distance_m"
              ],
              "properties": {
                "to": {
                  "type": "object",
                  "required": [
                    "name",
                    "lat",
                    "lon"
                  ],
                  "properties": {
                    "lat": {
                      "type": "number",
                      "description": "The latitude, in degrees."
                    },
                    "lon": {
                      "type": "number",
                      "description": "The longitude, in degrees."
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of the stop or the point."
                    },
                    "stop_id": {
                      "type": "string",
                      "description": "The stop id. Absent when the point is not a stop."
                    }
                  },
                  "description": "Where the leg ends.",
                  "additionalProperties": false
                },
                "end": {
                  "type": "string",
                  "description": "The instant at which the leg ends, RFC 3339."
                },
                "from": {
                  "type": "object",
                  "required": [
                    "name",
                    "lat",
                    "lon"
                  ],
                  "properties": {
                    "lat": {
                      "type": "number",
                      "description": "The latitude, in degrees."
                    },
                    "lon": {
                      "type": "number",
                      "description": "The longitude, in degrees."
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of the stop or the point."
                    },
                    "stop_id": {
                      "type": "string",
                      "description": "The stop id. Absent when the point is not a stop."
                    }
                  },
                  "description": "Where the leg starts.",
                  "additionalProperties": false
                },
                "kind": {
                  "type": "string",
                  "description": "walk, bus, minibus, metro, or cable_car."
                },
                "start": {
                  "type": "string",
                  "description": "The instant at which the leg starts, RFC 3339."
                },
                "stops": {
                  "type": "integer",
                  "description": "The count of stops of a ride after the boarding stop."
                },
                "distance_m": {
                  "type": "integer",
                  "description": "The distance of the leg in metres, rounded."
                },
                "route_name": {
                  "type": "string",
                  "description": "The route name of a ride."
                },
                "route_number": {
                  "type": "string",
                  "description": "The route number of a ride."
                }
              },
              "additionalProperties": false
            },
            "description": "The parts of the trip, in order."
          },
          "start": {
            "type": "string",
            "description": "The instant of departure, RFC 3339."
          },
          "walk_m": {
            "type": "integer",
            "description": "The total distance of walk in metres, rounded."
          },
          "transfers": {
            "type": "integer",
            "description": "The count of changes from one vehicle to another."
          },
          "duration_minutes": {
            "type": "integer",
            "description": "The duration in minutes, rounded up."
          }
        },
        "additionalProperties": false
      },
      "description": "Up to 3 ways to travel, in the order of the TTC."
    }
  },
  "additionalProperties": false
}
transit_plan_trip annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
transit_search_places — Search places in Tbilisi
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Finds places in Tbilisi (addresses, streets, buildings) by text, with their coordinates, for transit_plan_trip and transit_list_nearby_stops. Data from OpenStreetMap through the TTC.

transit_search_places input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "description": "The maximum count of places, 1 to 20. The default is 5."
    },
    "query": {
      "type": "string",
      "description": "An address, a street, or a building in Tbilisi."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
transit_search_places output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "places"
  ],
  "properties": {
    "note": {
      "type": "string",
      "description": "Why the list is empty."
    },
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the places, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when the TTC did not answer and the server returns places it read before."
    },
    "places": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "name",
          "lat",
          "lon"
        ],
        "properties": {
          "lat": {
            "type": "number",
            "description": "The latitude, in degrees."
          },
          "lon": {
            "type": "number",
            "description": "The longitude, in degrees."
          },
          "name": {
            "type": "string",
            "description": "The name of the place."
          },
          "street": {
            "type": "string",
            "description": "The street."
          },
          "district": {
            "type": "string",
            "description": "The district of Tbilisi."
          },
          "house_number": {
            "type": "string",
            "description": "The house number."
          }
        },
        "additionalProperties": false
      },
      "description": "The matching places, in the order of the TTC."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: TTC, from OpenStreetMap."
    }
  },
  "additionalProperties": false
}
transit_search_places annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
transit_search_routes — Search the routes of Tbilisi
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Finds the routes of the TTC by number or by name. Kinds: bus, minibus, metro, cable_car. With no query, lists every route.

transit_search_routes input schema
{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "description": "Only routes of this kind: bus, minibus, metro, or cable_car."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum count of routes, 1 to 100. The default is 20."
    },
    "query": {
      "type": "string",
      "description": "A route number or a part of a route name. Empty gives every route."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
transit_search_routes output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "routes"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the routes, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when the TTC did not answer and the server returns routes it read before."
    },
    "routes": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "id",
          "number",
          "name",
          "kind"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The route id."
          },
          "kind": {
            "type": "string",
            "description": "bus, minibus, metro, or cable_car."
          },
          "name": {
            "type": "string",
            "description": "The name of the route, usually its two ends."
          },
          "number": {
            "type": "string",
            "description": "The route number that the vehicle shows."
          }
        },
        "additionalProperties": false
      },
      "description": "The matching routes, best match first."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: TTC."
    }
  },
  "additionalProperties": false
}
transit_search_routes annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
transit_search_stops — Search the stops of Tbilisi
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Finds the stops of the Tbilisi Transport Company (bus stops, metro stations, cable car stations) by name or stop code, in Georgian or English. Use the stop id of the result with transit_list_arrivals or transit_get_timetable.

transit_search_stops input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "description": "Only stops of this kind: bus, metro, or cable_car. Empty gives every kind."
    },
    "limit": {
      "type": "integer",
      "description": "The maximum count of stops, 1 to 50. The default is 10."
    },
    "query": {
      "type": "string",
      "description": "A stop name or a stop code, in Georgian or English."
    },
    "language": {
      "type": "string",
      "description": "The language of the names: ka or en. The default is en."
    }
  },
  "additionalProperties": false
}
transit_search_stops output schema
{
  "type": "object",
  "required": [
    "source",
    "as_of",
    "stale",
    "stops"
  ],
  "properties": {
    "as_of": {
      "type": "string",
      "description": "The instant at which the server read the stops, RFC 3339."
    },
    "stale": {
      "type": "boolean",
      "description": "True when the TTC did not answer and the server returns stops it read before."
    },
    "stops": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "kind",
          "lat",
          "lon"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The stop id, for example 1:1000. Every transit tool that takes a stop accepts it."
          },
          "lat": {
            "type": "number",
            "description": "The latitude of the stop, in degrees."
          },
          "lon": {
            "type": "number",
            "description": "The longitude of the stop, in degrees."
          },
          "code": {
            "type": "string",
            "description": "The number on the sign of a bus stop. Absent for a station of metro or cable car."
          },
          "kind": {
            "type": "string",
            "description": "bus, metro, or cable_car. A minibus stops at a bus stop."
          },
          "name": {
            "type": "string",
            "description": "The name of the stop."
          }
        },
        "additionalProperties": false
      },
      "description": "The matching stops, best match first."
    },
    "source": {
      "type": "string",
      "description": "The source of the data: TTC."
    }
  },
  "additionalProperties": false
}
transit_search_stops annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1256 ms
95th percentile latency
1256 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1256 ms · metadata changed · 26 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http georgia-mcp https://geo-mcp.abgeo.cloud/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add georgia-mcp --url https://geo-mcp.abgeo.cloud/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable georgia-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "georgia-mcp": {
      "url": "https://geo-mcp.abgeo.cloud/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "georgia-mcp": {
      "type": "streamableHttp",
      "url": "https://geo-mcp.abgeo.cloud/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start georgia-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "georgia-mcp": {
      "type": "http",
      "url": "https://geo-mcp.abgeo.cloud/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http georgia-mcp https://geo-mcp.abgeo.cloud/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://geo-mcp.abgeo.cloud/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "georgia-mcp": {
      "serverUrl": "https://geo-mcp.abgeo.cloud/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Georgia MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.