Geodb Cities MCP Server

Geodb Cities MCP Server

Provides access to the GeoDB Cities API for retrieving global geographic data including city details, populations, and local time. It enables users to find nearby locations, calculate distances between places, and browse administrative divisions across countries.

Category
访问服务器

README

Geodb Cities MCP Server

English | 简体中文 | 繁體中文

用于访问 Geodb Cities API 的 MCP 服务器。

🚀 使用 EMCP 平台快速体验

EMCP 是一个强大的 MCP 服务器管理平台,让您无需手动配置即可快速使用各种 MCP 服务器!

快速开始:

  1. 🌐 访问 EMCP 平台
  2. 📝 注册并登录账号
  3. 🎯 进入 MCP 广场,浏览所有可用的 MCP 服务器
  4. 🔍 搜索或找到本服务器(bach-geodb_cities
  5. 🎉 点击 "安装 MCP" 按钮
  6. ✅ 完成!即可在您的应用中使用

EMCP 平台优势:

  • 零配置:无需手动编辑配置文件
  • 🎨 可视化管理:图形界面轻松管理所有 MCP 服务器
  • 🔐 安全可靠:统一管理 API 密钥和认证信息
  • 🚀 一键安装:MCP 广场提供丰富的服务器选择
  • 📊 使用统计:实时查看服务调用情况

立即访问 EMCP 平台 开始您的 MCP 之旅!


简介

这是一个 MCP 服务器,用于访问 Geodb Cities API。

  • PyPI 包名: bach-geodb_cities
  • 版本: 1.0.0
  • 传输协议: stdio

安装

从 PyPI 安装:

pip install bach-geodb_cities

从源码安装:

pip install -e .

运行

方式 1: 使用 uvx(推荐,无需安装)

# 运行(uvx 会自动安装并运行)
uvx --from bach-geodb_cities bach_geodb_cities

# 或指定版本
uvx --from bach-geodb_cities@latest bach_geodb_cities

方式 2: 直接运行(开发模式)

python server.py

方式 3: 安装后作为命令运行

# 安装
pip install bach-geodb_cities

# 运行(命令名使用下划线)
bach_geodb_cities

配置

API 认证

此 API 需要认证。请设置环境变量:

export API_KEY="your_api_key_here"

环境变量

变量名 说明 必需
API_KEY API 密钥
PORT 不适用
HOST 不适用

在 Cursor 中使用

编辑 Cursor MCP 配置文件 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "bach-geodb_cities": {
      "command": "uvx",
      "args": ["--from", "bach-geodb_cities", "bach_geodb_cities"],
      "env": {
        "API_KEY": "your_api_key_here"
      }
    }
  }
}

在 Claude Desktop 中使用

编辑 Claude Desktop 配置文件 claude_desktop_config.json:

{
  "mcpServers": {
    "bach-geodb_cities": {
      "command": "uvx",
      "args": ["--from", "bach-geodb_cities", "bach_geodb_cities"],
      "env": {
        "API_KEY": "your_api_key_here"
      }
    }
  }
}

可用工具

此服务器提供以下工具:

place_distance

Gets this place's distance to the given place.

端点: GET /v1/geo/places/{placeId}/distance

参数:

  • distanceUnit (string): The unit of distance: KM | MI [default]

  • toPlaceId (string): The distance to this place

  • placeId (string) 必需: Example value:


place_time

Get this place's current time in ISO-8601 format: HHmmss.SSSZ

端点: GET /v1/geo/places/{placeId}/time

参数:

  • placeId (string) 必需: Example value:

place_date_time

Get this place's current date-time in ISO-6801 format: yyyyMMdd'T'HHmmssZ

端点: GET /v1/geo/places/{placeId}/dateTime

参数:

  • placeId (string) 必需: Example value:

place_located_in

Get the details for the containing populated place (e.g., its county or other administrative division), including location coordinates, population, and elevation above sea-level (if available). Currently, this data is highly dependent on whether the Wikidata locatedIn relation is properly defined. If you see an issue, please propose a change to the corresponding Wikidata entry.

端点: GET /v1/geo/places/{placeId}/locatedIn

参数:

  • placeId (string) 必需: Example value:

place_details

Get the details for a specific place, including location coordinates, population, and elevation above sea-level (if available).

端点: GET /v1/geo/places/{placeId}

参数:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • placeId (string) 必需: Example value:


city_located_in

Get the details for the containing populated place (e.g., its county or other administrative division), including location coordinates, population, and elevation above sea-level (if available). Currently, this data is highly dependent on whether the Wikidata locatedIn relation is properly defined. If you see an issue, please propose a change to the corresponding Wikidata entry.

端点: GET /v1/geo/cities/{cityId}/locatedIn

参数:

  • cityId (string) 必需: Example value: Q65

places_near_location

Get places near the given location, filtering by optional criteria.

端点: GET /v1/geo/locations/{locationid}/nearbyPlaces

参数:

  • types (string): Only places for these types (comma-delimited): ADM2 | CITY | ISLAND

  • radius (string) 必需: The location radius within which to find places

  • distanceUnit (string): The unit of distance to use: MI | KM

  • countryIds (string): Only places in these countries (comma-delimited country codes or WikiData ids)

  • excludedCountryIds (string): Only places NOT in these countries (comma-delimited country codes or WikiData ids)

  • timeZoneIds (string): Only places in these time-zones

  • minPopulation (number): Only places having at least this population

  • maxPopulation (number): Only places having no more than this population

  • namePrefix (string): Only places whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any places marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = countryCode | elevation | name | population

  • locationid (string) 必需: Only cities near this location. Latitude/longitude in ISO-6709 format: ±DD.DDDD±DDD.DDDD


places_near_place

Get places near the given place, filtering by optional criteria.

端点: GET /v1/geo/places/{placeId}/nearbyPlaces

参数:

  • types (string): Only places for these types (comma-delimited): ADM2 | CITY | ISLAND

  • radius (number) 必需: The location radius within which to find places

  • distanceUnit (string): The unit of distance to use: MI | KM

  • countryIds (string): Only places in these countries (comma-delimited country codes or WikiData ids)

  • excludedCountryIds (string): Only places NOT in these countries (comma-delimited country codes or WikiData ids)

  • timeZoneIds (string): Only places in these time-zones

  • minPopulation (number): Only places having at least this population

  • maxPopulation (number): Only places having no more than this population

  • namePrefix (string): Only places whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any places marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = countryCode | elevation | name | population

  • placeId (string) 必需: Example value:


country_places

Get the places in the given country.

端点: GET /v1/geo/countries/{countryId}/places

参数:

  • types (string): Only cities for these types (comma-delimited): ADM2 | CITY | ISLAND

  • timeZoneIds (string): Only places in these time-zones

  • minPopulation (number): Only places having at least this population

  • maxPopulation (number): Only places having no more than this population

  • namePrefix (string): Only places whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any cities marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = elevation | name | population

  • countryId (string) 必需: Example value: US


country_region_divisions

Get the administrative divisions in the given region.

端点: GET /v1/geo/countries/{countryid}/regions/{regioncode}/adminDivisions

参数:

  • minPopulation (number): Only cities having at least this population

  • maxPopulation (number): Only divisions having no more than this population

  • namePrefix (string): Only divisions whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any cities marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = elevation | name | population

  • countryid (string) 必需: An ISO-3166 country code or WikiData id

  • regioncode (string) 必需: An ISO-3166 or FIPS region code


admin_division_details

Get the details for a specific administrative division, including location coordinates, population, and elevation above sea-level (if available).

端点: GET /v1/geo/adminDivisions/{divisionId}

参数:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • divisionId (string) 必需: Example value: Q104994


cities_near_division

Get cities near the given administrative division, filtering by optional criteria.

端点: GET /v1/geo/adminDivisions/{divisionId}/nearbyCities

参数:

  • types (string): Only cities for these types (comma-delimited): CITY | ADM2

  • radius (number) 必需: The location radius within which to find cities

  • distanceUnit (string): The unit of distance to use: MI | KM

  • countryIds (string): Only cities in these countries (comma-delimited country codes or WikiData ids)

  • excludedCountryIds (string): Only cities NOT in these countries (comma-delimited country codes or WikiData ids)

  • timeZoneIds (string): Only cities in these time-zones

  • minPopulation (number): Only cities having at least this population

  • maxPopulation (number): Only cities having no more than this population

  • namePrefix (string): Only cities whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any cities marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = countryCode | elevation | name | population

  • divisionId (string) 必需: Example value: Q104994


admin_divisions

Find administrative divisions, filtering by optional criteria. If no criteria are set, you will get back all known divisions with a population of at least 1000

端点: GET /v1/geo/adminDivisions

参数:

  • location (string): Only divisions near this location. Latitude/longitude in ISO-6709 format: ±DD.DDDD±DDD.DDDD

  • radius (number): The location radius within which to find divisions

  • distanceUnit (string): The unit of distance to use: MI | KM

  • countryIds (string): Only divisions in these countries (comma-delimited country codes or WikiData ids)

  • excludedCountryIds (string): Only divisions NOT in these countries (comma-delimited country codes or WikiData ids)

  • timeZoneIds (string): Only divisions in these time-zones

  • minPopulation (number): Only divisions having at least this population

  • maxPopulation (number): Only divisions having no more than this population

  • namePrefix (string): Only divisions whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any divisions marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = countryCode | elevation | name | population


country_region_places

Get the places in the given region.

端点: GET /v1/geo/countries/{countryid}/regions/{regionId}/places

参数:

  • types (string): Only cities for these types (comma-delimited): ADM2 | CITY | ISLAND

  • timeZoneIds (string): Only places in these time-zones

  • minPopulation (number): Only places having at least this population

  • maxPopulation (number): Only places having no more than this population

  • namePrefix (string): Only places whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any cities marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = elevation | name | population

  • countryid (string) 必需: An ISO-3166 country code or WikiData id

  • regionId (string) 必需: Example value: CA


places

Find places, filtering by optional criteria. If no criteria are set, you will get back all known places.

端点: GET /v1/geo/places

参数:

  • types (string): Only places for these types (comma-delimited): ADM2 | CITY | ISLAND

  • location (string): Only places near this location. Latitude/longitude in ISO-6709 format: ±DD.DDDD±DDD.DDDD

  • radius (number): The location radius within which to find places

  • distanceUnit (string): The unit of distance to use: MI | KM

  • countryIds (string): Only places in these countries (comma-delimited country codes or WikiData ids)

  • excludedCountryIds (string): Only places NOT in these countries (comma-delimited country codes or WikiData ids)

  • timeZoneIds (string): Only places in these time-zones

  • minPopulation (number): Only places having at least this population

  • maxPopulation (number): Only places having no more than this population

  • namePrefix (string): Only places whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • includeDeleted (string): Whether to include any places marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = countryCode | elevation | name | population


time_zone

Get the time-zone current time in ISO-6801 format: HHmmss.SSSZ

端点: GET /v1/locale/timezones/{zoneid}

参数:

  • zoneid (string) 必需: The time-zone id

admin_divisions_near_location

Get administrative divisions near the given location, filtering by optional criteria.

端点: GET /v1/geo/locations/{locationid}/nearbyDivisions

参数:

  • radius (string) 必需: The location radius within which to find divisions

  • distanceUnit (string): The unit of distance to use: MI | KM

  • countryIds (string): Only divisions in these countries (comma-delimited country codes or WikiData ids)

  • excludedCountryIds (string): Only divisions NOT in these countries (comma-delimited country codes or WikiData ids)

  • timeZoneIds (string): Only divisions in these time-zones

  • minPopulation (number): Only divisions having at least this population

  • maxPopulation (number): Only divisions having no more than this population

  • namePrefix (string): Only divisions whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any divisions marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = countryCode | elevation | name | population

  • locationid (string) 必需: Only divisions near this location. Latitude/longitude in ISO-6709 format: ±DD.DDDD±DDD.DDDD


admin_divisions_near_division

Get divisions near the given administrative division, filtering by optional criteria.

端点: GET /v1/geo/adminDivisions/{divisionId}/nearbyDivisions

参数:

  • radius (number) 必需: The location radius within which to find divisions

  • distanceUnit (string): The unit of distance to use: MI | KM

  • countryIds (string): Only divisions in these countries (comma-delimited country codes or WikiData ids)

  • excludedCountryIds (string): Only divisions NOT in these countries (comma-delimited country codes or WikiData ids)

  • timeZoneIds (string): Only divisions in these time-zones

  • minPopulation (number): Only divisions having at least this population

  • maxPopulation (number): Only divisions having no more than this population

  • namePrefix (string): Only divisions whose names start with this prefix. If languageCode is set, the prefix will be matched on the name as it appears in that language.

  • namePrefixDefaultLangResults (string): Example value:

  • languageCode (string): Display results in this language

  • asciiMode (string): Example value:

  • hateoasMode (string): Example value:

  • includeDeleted (string): Whether to include any divisions marked deleted: ALL | SINCE_YESTERDAY | SINCE_LAST_WEEK | NONE

  • limit (number): The maximum number of results to retrieve

  • offset (number): The zero-ary offset into the results

  • sort (string): How to sort the results. Format: ±SORT_FIELD,±SORT_FIELD where SORT_FIELD = countryCode | elevation | name | population

  • divisionId (string) 必需: Example value: Q104994


技术栈

  • 传输协议: stdio
  • HTTP 客户端: httpx

许可证

MIT License - 详见 LICENSE 文件。

开发

此服务器由 API-to-MCP 工具生成。

版本: 1.0.0

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选