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.
https://geo-mcp.abgeo.cloud/mcpWhat its tools do
26 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (26)
air_get_qualityair_list_historycinema_get_seat_mapcinema_list_cinemascinema_list_moviescinema_list_sessionscinema_search_moviesfuel_get_pricesoffers_get_offeroffers_search_offerspostal_search_codesrates_get_commercial_ratesrates_get_official_ratesrates_list_official_historystats_get_cellsstats_get_inflationstats_get_tablestats_search_tablestransit_get_routetransit_get_timetabletransit_list_arrivalstransit_list_nearby_stopstransit_plan_triptransit_search_placestransit_search_routestransit_search_stops
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
- 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
{
"tools": {}
}Tools
26 advertised
air_get_quality — Get the air quality in Georgia
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}air_list_history — List the air quality history of a station
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}cinema_get_seat_map — Get the seat map of a session of Cavea
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}cinema_list_cinemas — List the cinemas of Cavea
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.
{
"type": "object",
"properties": {
"language": {
"type": "string",
"description": "The language of the names and the texts: ka or en. The default is en."
}
},
"additionalProperties": false
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}cinema_list_movies — List the movies of Cavea
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}cinema_list_sessions — List the sessions of Cavea
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}cinema_search_movies — Search the movies of Cavea
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}fuel_get_prices — Fuel prices of Georgian fuel companies
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}offers_get_offer — Terms of a card offer
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}offers_search_offers — Card offers of Georgian banks
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).
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}postal_search_codes — Search the postal codes of Georgia
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}rates_get_commercial_rates — Commercial exchange rates of Georgian banks
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}rates_get_official_rates — Official exchange rates of the NBG
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}rates_list_official_history — Official exchange rate history of the NBG
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}stats_get_cells — Get the figures of a statistical table
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}stats_get_inflation — Get the inflation of Georgia
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}stats_get_table — Describe a statistical table of Georgia
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}stats_search_tables — Search the statistical tables of Georgia
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}transit_get_route — A route of Tbilisi and its stops
Returns a route of the TTC with each direction: its headsign and its stops in order.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}transit_get_timetable — Timetable of a route at a stop
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}transit_list_arrivals — Next arrivals at a stop in Tbilisi
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}transit_list_nearby_stops — Stops near a point in Tbilisi
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}transit_plan_trip — Plan a trip by public transport in Tbilisi
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}transit_search_places — Search places in Tbilisi
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}transit_search_routes — Search the routes of Tbilisi
Finds the routes of the TTC by number or by name. Kinds: bus, minibus, metro, cable_car. With no query, lists every route.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}transit_search_stops — Search the stops of Tbilisi
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.
{
"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
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
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.
Claude Code
claude mcp add --transport http georgia-mcp https://geo-mcp.abgeo.cloud/mcpCodex
codex mcp add georgia-mcp --url https://geo-mcp.abgeo.cloud/mcpCursor
{
"mcpServers": {
"georgia-mcp": {
"url": "https://geo-mcp.abgeo.cloud/mcp"
}
}
}Cline
{
"mcpServers": {
"georgia-mcp": {
"type": "streamableHttp",
"url": "https://geo-mcp.abgeo.cloud/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"georgia-mcp": {
"type": "http",
"url": "https://geo-mcp.abgeo.cloud/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http georgia-mcp https://geo-mcp.abgeo.cloud/mcpClaude Desktop
https://geo-mcp.abgeo.cloud/mcpWindsurf
{
"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.