滑板公园查询API

一个基于FastAPI的后端服务,通过OpenStreetMap和Nominatim提供指定城市的滑板公园查询及地址解析功能。

  • by lucasinocencio1
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 lucasinocencio1/world_sk8_parks

使用说明

Worlds_skate_parks API-MCP

FastAPI后端返回给定城市的滑板公园。对数据使用OpenStreetMap(Overpass),对地理编码使用Nomination,对地址使用可选的反向地理编码。

堆栈:Python 3.10+、FastAPI、httpx、geopy、pydantic设置。通过env进行配置(请参见 app/core/config.py).

缓存:用于地理编码和覆盖结果的内存TTL缓存(请参见 app/core/cache.py).减少对提名和超车的呼叫;TTL是可配置的。设计为以后可以在不更改调用者的情况下切换到Redis。

如何跑步:

make server

创造 .venv 如果丢失,则安装deps,在启动API http://127.0.0.1:8000.

  • 文件: http://127.0.0.1:8000/docs
  • 健康: GET /health
  • 滑板公园: GET /skateparks/by-city?city=Lisbon (可选: resolve_address=true 用于反向地理编码地址)

Makefile

目标 描述
make 显示帮助
make setup 创建 .venv 如果需要
make install 安装依赖项
make server 运行API(安装+安装+uvicorn)
make mcp 在8010(游标+终端)上运行MCP服务器:stdio+HTTP
make mcp-stdio 仅限MCP stdio(例如用于光标)
make mcp-http MCP HTTP仅适用于:8010(适用于curl/其他终端)

MCP服务器

提供MCP服务器,以便助手可以调用滑板公园搜索作为工具。

  • 默认值(make mcp)**:在上同时运行stdio和HTTP http://127.0.0.1:8010/mcp/ (可流式传输的http)。针对该URL使用MCP客户端从另一个终端与MCP通信。
  • 仅限stdio(make mcp-stdio):用于光标;在MCP配置(stdio)中添加服务器。
  • 仅限HTTP(make mcp-http):端口8010上只有HTTP。

工具 get_skateparks(city_name, resolve_address?) 返回那个城市的滑板公园。