Geo — canonical payload contracts
GeoNames-backed geospatial MCP: countries, cities, admin regions, marine, POIs (airports, peaks, lakes, …), distance and nearby search.
Service id: geo
Docs: https://mcp.glc-rag.hu/guide/geo
Markdown docs: https://mcp.glc-rag.hu/guide/geo.md
MCP resource: docs://geo/payload
POST https://mcp.glc-rag.hu/mcp. Values below are type slots from the live input schema (e.g. <string, required>), not example data. Fill them from the user task.
RPC result wrapper: result.structuredContent is the object in Output schema. result.isError mirrors structuredContent.is_error.
geo_status
Geo DB health, read-only mode, and row counts by entity_type.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_status",
"arguments": {}
}
}
Input schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
}
},
"additionalProperties": true,
"required": [
"ok"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_resolve
Resolve a name, ISO2/ISO3, or IATA code to geo entities (best matches).
Required arguments: query
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_resolve",
"arguments": {
"query": "<string, required>",
"entity_type": "<string, optional, enum country|city|place|admin1|admin2|marine>",
"country_code": "<string, optional>",
"place_kind": "<string, optional, enum hill|mountain|peak|volcano|lake|lakes|reservoir|waterfall|island|islands|atoll|airport|heliport|park|nature_reserve|wildlife_reserve|pass|ruin|castle|museum|monument|oilfield>",
"limit": "<integer, optional, default 10, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"entity_type": {
"type": "string",
"enum": [
"country",
"city",
"place",
"admin1",
"admin2",
"marine"
]
},
"country_code": {
"type": "string",
"description": "ISO2 filter"
},
"place_kind": {
"type": "string",
"enum": [
"hill",
"mountain",
"peak",
"volcano",
"lake",
"lakes",
"reservoir",
"waterfall",
"island",
"islands",
"atoll",
"airport",
"heliport",
"park",
"nature_reserve",
"wildlife_reserve",
"pass",
"ruin",
"castle",
"museum",
"monument",
"oilfield"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"required": [
"query"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_get
Full entity profile by geoname_id (columns + complete payload).
Required arguments: geoname_id
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_get",
"arguments": {
"geoname_id": "<integer, required>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
}
},
"required": [
"geoname_id"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"entity": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": true,
"required": [
"found"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_text_search
Fuzzy text search (pg_trgm) over names and search_text.
Required arguments: query
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_text_search",
"arguments": {
"query": "<string, required>",
"entity_type": "<string, optional, enum country|city|place|admin1|admin2|marine>",
"limit": "<integer, optional, default 20, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"entity_type": {
"type": "string",
"enum": [
"country",
"city",
"place",
"admin1",
"admin2",
"marine"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"required": [
"query"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_semantic_search
Embedding-space neighbors around the best name match (uses stored e5 vectors; no write to DB). Falls back to text search if anchor has no embedding.
Required arguments: query
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_semantic_search",
"arguments": {
"query": "<string, required>",
"entity_type": "<string, optional, enum country|city|place|admin1|admin2|marine>",
"limit": "<integer, optional, default 20, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"entity_type": {
"type": "string",
"enum": [
"country",
"city",
"place",
"admin1",
"admin2",
"marine"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"required": [
"query"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_country_get
Country facts by ISO2 or geoname_id (currency, languages, coastal flags, …).
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_country_get",
"arguments": {
"iso2": "<string, optional>",
"geoname_id": "<integer, optional>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"iso2": {
"type": "string"
},
"geoname_id": {
"type": "integer"
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"entity": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": true,
"required": [
"found"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_country_list
List countries, optionally filtered by continent_code.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_country_list",
"arguments": {
"continent_code": "<string, optional>",
"limit": "<integer, optional, default 50, minimum 1, maximum 252>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"continent_code": {
"type": "string",
"description": "e.g. EU, AS, AF"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 252,
"default": 50
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_country_neighbours
Neighbouring countries via payload.neighbours ISO2 list.
Required arguments: iso2
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_country_neighbours",
"arguments": {
"iso2": "<string, required>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"iso2": {
"type": "string"
}
},
"required": [
"iso2"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_country_capital
Resolve country capital via capital_geoname_id.
Required arguments: iso2
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_country_capital",
"arguments": {
"iso2": "<string, required>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"iso2": {
"type": "string"
}
},
"required": [
"iso2"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"entity": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": true,
"required": [
"found"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_admin1_list
List admin1 regions for a country (e.g. Italian regions).
Required arguments: country_code
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_admin1_list",
"arguments": {
"country_code": "<string, required>",
"limit": "<integer, optional, default 50, minimum 1, maximum 100>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
}
},
"required": [
"country_code"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_admin1_get
Get admin1 by admin_code (e.g. IT.03) or geoname_id.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_admin1_get",
"arguments": {
"admin_code": "<string, optional>",
"geoname_id": "<integer, optional>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"admin_code": {
"type": "string"
},
"geoname_id": {
"type": "integer"
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"entity": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": true,
"required": [
"found"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_admin2_list
List admin2 for a country, optionally under an admin1 short code.
Required arguments: country_code
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_admin2_list",
"arguments": {
"country_code": "<string, required>",
"admin1_code": "<string, optional>",
"limit": "<integer, optional, default 50, minimum 1, maximum 100>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string"
},
"admin1_code": {
"type": "string",
"description": "Short code e.g. 03"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
}
},
"required": [
"country_code"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_admin2_get
Get admin2 by admin_code or geoname_id.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_admin2_get",
"arguments": {
"admin_code": "<string, optional>",
"geoname_id": "<integer, optional>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"admin_code": {
"type": "string"
},
"geoname_id": {
"type": "integer"
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"entity": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": true,
"required": [
"found"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_cities_search
Search cities with filters: country, admin1 short code, population, coastal_category, distance_to_coast_km, is_capital, name query.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_cities_search",
"arguments": {
"country_code": "<string, optional>",
"admin1_code": "<string, optional>",
"min_population": "<integer, optional>",
"max_population": "<integer, optional>",
"coastal_category": "<string, optional, enum direct_coastal|coastal|near_coast|inland>",
"max_distance_to_coast_km": "<number, optional>",
"is_capital": "<boolean, optional>",
"query": "<string, optional>",
"limit": "<integer, optional, default 20, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string"
},
"admin1_code": {
"type": "string"
},
"min_population": {
"type": "integer"
},
"max_population": {
"type": "integer"
},
"coastal_category": {
"type": "string",
"enum": [
"direct_coastal",
"coastal",
"near_coast",
"inland"
]
},
"max_distance_to_coast_km": {
"type": "number"
},
"is_capital": {
"type": "boolean"
},
"query": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_coastal_cities
Shortcut for coastal city lists (distance and/or coastal_category).
Required arguments: country_code
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_coastal_cities",
"arguments": {
"country_code": "<string, required>",
"admin1_code": "<string, optional>",
"max_distance_to_coast_km": "<number, optional, default 5>",
"coastal_category": "<string, optional, enum direct_coastal|coastal|near_coast|inland>",
"max_population": "<integer, optional>",
"limit": "<integer, optional, default 20, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string"
},
"admin1_code": {
"type": "string"
},
"max_distance_to_coast_km": {
"type": "number",
"default": 5
},
"coastal_category": {
"type": "string",
"enum": [
"direct_coastal",
"coastal",
"near_coast",
"inland"
]
},
"max_population": {
"type": "integer"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"required": [
"country_code"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_region_cities
Cities in an admin1 region (country_code + admin1 short code).
Required arguments: country_code, admin1_code
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_region_cities",
"arguments": {
"country_code": "<string, required>",
"admin1_code": "<string, required>",
"min_population": "<integer, optional>",
"max_population": "<integer, optional>",
"limit": "<integer, optional, default 20, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string"
},
"admin1_code": {
"type": "string"
},
"min_population": {
"type": "integer"
},
"max_population": {
"type": "integer"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"required": [
"country_code",
"admin1_code"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_nearest_marine
Precomputed nearest sea/bay for a city (nearest_marine_* + coastal fields).
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_nearest_marine",
"arguments": {
"geoname_id": "<integer, optional>",
"city_query": "<string, optional>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"city_query": {
"type": "string"
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"entity": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": true,
"required": [
"found"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_marine_get
Marine entity (sea, bay, …) by geoname_id or name query.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_marine_get",
"arguments": {
"geoname_id": "<integer, optional>",
"query": "<string, optional>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"query": {
"type": "string"
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"entity": {
"type": [
"object",
"null"
]
}
},
"additionalProperties": true,
"required": [
"found"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_distance
Haversine distance (km) between two places (id or name). Countries use capital coords.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_distance",
"arguments": {
"from_id": "<integer, optional>",
"from_query": "<string, optional>",
"to_id": "<integer, optional>",
"to_query": "<string, optional>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"from_id": {
"type": "integer"
},
"from_query": {
"type": "string"
},
"to_id": {
"type": "integer"
},
"to_query": {
"type": "string"
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"from": {
"type": "object"
},
"to": {
"type": "object"
},
"distance_km": {
"type": "number"
}
},
"additionalProperties": true,
"required": [
"distance_km"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_nearby
Entities within radius_km of a center (id, name, or lat/lon). Optional type/kind filters.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_nearby",
"arguments": {
"center_id": "<integer, optional>",
"center_query": "<string, optional>",
"latitude": "<number, optional>",
"longitude": "<number, optional>",
"radius_km": "<number, optional, default 30>",
"entity_type": "<string, optional, enum country|city|place|admin1|admin2|marine>",
"place_kind": "<string, optional, enum hill|mountain|peak|volcano|lake|lakes|reservoir|waterfall|island|islands|atoll|airport|heliport|park|nature_reserve|wildlife_reserve|pass|ruin|castle|museum|monument|oilfield>",
"limit": "<integer, optional, default 20, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"center_id": {
"type": "integer"
},
"center_query": {
"type": "string"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"radius_km": {
"type": "number",
"default": 30
},
"entity_type": {
"type": "string",
"enum": [
"country",
"city",
"place",
"admin1",
"admin2",
"marine"
]
},
"place_kind": {
"type": "string",
"enum": [
"hill",
"mountain",
"peak",
"volcano",
"lake",
"lakes",
"reservoir",
"waterfall",
"island",
"islands",
"atoll",
"airport",
"heliport",
"park",
"nature_reserve",
"wildlife_reserve",
"pass",
"ruin",
"castle",
"museum",
"monument",
"oilfield"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_places_search
Search POIs by place_kind (hill, mountain, peak, volcano, lake, lakes, reservoir, waterfall, …), country, name, elevation.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_places_search",
"arguments": {
"place_kind": "<string, optional, enum hill|mountain|peak|volcano|lake|lakes|reservoir|waterfall|island|islands|atoll|airport|heliport|park|nature_reserve|wildlife_reserve|pass|ruin|castle|museum|monument|oilfield>",
"country_code": "<string, optional>",
"query": "<string, optional>",
"min_elevation": "<number, optional>",
"limit": "<integer, optional, default 20, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place_kind": {
"type": "string",
"enum": [
"hill",
"mountain",
"peak",
"volcano",
"lake",
"lakes",
"reservoir",
"waterfall",
"island",
"islands",
"atoll",
"airport",
"heliport",
"park",
"nature_reserve",
"wildlife_reserve",
"pass",
"ruin",
"castle",
"museum",
"monument",
"oilfield"
]
},
"country_code": {
"type": "string"
},
"query": {
"type": "string"
},
"min_elevation": {
"type": "number"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_airport_lookup
Find airports by IATA/ICAO, name, country, or near a city.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_airport_lookup",
"arguments": {
"iata": "<string, optional>",
"icao": "<string, optional>",
"query": "<string, optional>",
"country_code": "<string, optional>",
"near_query": "<string, optional>",
"radius_km": "<number, optional, default 50>",
"limit": "<integer, optional, default 10, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"iata": {
"type": "string"
},
"icao": {
"type": "string"
},
"query": {
"type": "string"
},
"country_code": {
"type": "string"
},
"near_query": {
"type": "string"
},
"radius_km": {
"type": "number",
"default": 50
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_rank_places
Rank places of a kind (e.g. highest peaks) optionally within a country.
Required arguments: place_kind
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_rank_places",
"arguments": {
"place_kind": "<string, required, enum hill|mountain|peak|volcano|lake|lakes|reservoir|waterfall|island|islands|atoll|airport|heliport|park|nature_reserve|wildlife_reserve|pass|ruin|castle|museum|monument|oilfield>",
"country_code": "<string, optional>",
"limit": "<integer, optional, default 10, minimum 1, maximum 50>"
}
}
}
Input schema
{
"type": "object",
"properties": {
"place_kind": {
"type": "string",
"enum": [
"hill",
"mountain",
"peak",
"volcano",
"lake",
"lakes",
"reservoir",
"waterfall",
"island",
"islands",
"atoll",
"airport",
"heliport",
"park",
"nature_reserve",
"wildlife_reserve",
"pass",
"ruin",
"castle",
"museum",
"monument",
"oilfield"
]
},
"country_code": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"required": [
"place_kind"
],
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"geoname_id": {
"type": "integer"
},
"name": {
"type": "string"
},
"ascii_name": {
"type": "string"
},
"entity_type": {
"type": "string"
},
"country_code": {
"type": [
"string",
"null"
]
},
"latitude": {
"type": [
"number",
"null"
]
},
"longitude": {
"type": [
"number",
"null"
]
},
"place_kind": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}
},
"query": {
"type": "string"
}
},
"additionalProperties": true,
"required": [
"count",
"results"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}
geo_place_kinds
List supported place_kind values and entity_type values.
Required arguments: (none)
Request contract
{
"jsonrpc": "2.0",
"id": "<integer|string>",
"method": "tools/call",
"params": {
"name": "geo_place_kinds",
"arguments": {}
}
}
Input schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Output schema (structuredContent on success)
{
"type": "object",
"properties": {
"kinds": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true,
"required": [
"kinds"
]
}
Error object
{
"type": "object",
"required": [
"error",
"is_error"
],
"properties": {
"error": {
"type": "string"
},
"is_error": {
"type": "boolean",
"const": true
}
},
"additionalProperties": true
}