城市导航API服务

MCP API Server是一个后端API服务,为City Day Navigator提供安全、限速和记录的微工具,将复杂的第三方API抽象为简单统一的接口。

  • by ayushh2k
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 ayushh2k/city-nav-mcp

使用说明

MCP API服务器(城市日导航器)

这是城市日导航器的后端API服务器。它提供了一组安全、速率限制和日志记录的微工具,将复杂的第三方API抽象为一个简单、统一的接口。

该服务器提供“工具”(例如。, geocode, forecast, eta)编排器用于收集数据。


架构图

此图显示了MCP服务器如何充当所有外部API的安全网关。


🛠️ API终点

所有端点都受到X-API-KEY报头和30请求/分钟速率限制的保护。

mcp地理

GET/mcp/geo/geocode

  • 查询参数: city={name}
  • 退货: {"lat": 35.01, "lon": 135.76, "display_name": "..."}

GET/mcp/geo/附近

  • 查询参数: lat={lat}&lon={lon}&query={query}&radius_m=5000&limit=15
  • 退货: {"places": [{"name": "Kinkaku-ji", ...}]}

mcp天气

GET/mcp/天气/预报

  • 查询参数: lat={lat}&lon={lon}&date={YYYY-MM-DD}
  • 退货: {"temp_c": 11.2, "precip_prob": 3, ...}

mcp空气

GET/mcp/空气/空气

  • 查询参数: lat={lat}&lon={lon}
  • 退货: {"pm25": 10.5, "category": "Good", ...}

mcp路线

POST/mcp/route/eta

  • 主体: {"profile": "car", "points": [{"lat": ..., "lon": ...}, ...]}
  • 退货: {"distance_km": 10.5, "duration_min": 25.1, ...}

mcp日历

GET/mcp/日历/假期

  • 查询参数: country_code={CC}&year={YYYY}
  • 退货: [{"date": "2025-01-01", "localName": "元日"}, ...]

mcp fx

GET/mcp/fx/转换

  • 查询参数: amount={num}&from={CUR}&to={CUR}
  • 退货: {"rate": 148.5, "converted": 29700}

mcp维基数据

POST/mcp/wikedata/query

  • 主体: {"query": "SELECT ..."}
  • 退货: {"results": {"bindings": [...]}}

🚀 设置和运行

  1. 克隆仓库:

    git clone https://github.com/ayushh2k/city-nav-mcp.git
    cd city-nav-mcp
    
  2. 安装依赖项:

    go mod tidy
    make install-air
    
  3. 创建 .env 文件:

    OPENAQ_API_KEY="your_openaq_key"
    EXCHANGERATE_API_KEY="your_exchangeratesapi_key"
    
  4. 运行开发服务器:

    make dev
    

    服务器将在上运行 http://localhost:8000.


🐳 使用Docker运行

先决条件

  • 已安装Docker和Docker Compose。
  • 确保您的 .env 文件在 mcp-server 和 orchestrator 具有所有必需的API密钥的目录。

运行:

docker-compose up --build```