MCP Geo Server

使用说明(简明易懂,分步骤列出核心流程)

  • 项目简介

    • 该仓库实现了一个地理空间数据的 MCP 服务器,旨在向大型语言模型(LLM)客户端提供标准化的资源、工具、Prompt 模板等上下文信息,便于在 UK 地理与统计数据等场景中进行对话式查询和工作流调度。
  • 主要功能点

    • MCP 兼容的服务端实现,支持读取资源、执行工具、获取提示模板等。
    • 提供 /mcp、/tools、/resources 等标准端点,用于 JSON-RPC 风格的请求/响应。
    • 具备会话管理、能力声明、日志与追踪、以及对多种传输方式的支持(如 STDIO、HTTP)。
    • 集成外部数据源(如 OS、ONS、NOMIS)以及 MCP-Apps UI 资源。
    • 具备测试、UI playground、以及工具/资源的动态注册与描述能力。
  • 安装步骤(简化版)

    • 克隆仓库并进入项目目录
    • 安装依赖并开发运行环境(示例常用做法)
      • 常见做法:在虚拟环境中执行安装(例如使用 pip 安装开发依赖)
    • 以开发模式启动服务器
      • 运行命令:使用 Uvicorn 启动,入口点通常为 server.main:app(支持热重新加载)
    • 配置 Os/BKey 等密钥
      • 将 OS/API 密钥写入环境变量或 .env 文件中,例如 OS_API_KEY、ONS_API_KEY
    • 验证服务器是否就绪
      • 访问 health 端点,或按 README 提到的示例执行工具查询数据
  • 服务器配置(给 MCP 客户端使用的 JSON 配置示例)

    • serverName: geo
    • command: docker
    • args: ["run", "-i", "--env-file", ".env", "mcp-geo-server"]
    • 说明:该配置指示 MCP 客户端通过 Docker 运行容器镜像 mcp-geo-server,并通过 .env 文件提供必要的环境变量。镜像名与容器启动参数可按实际部署调整,确保 OS_API_KEY / ONS_API_KEY 等密钥可被容器访问。
    • 进一步说明:若需要通过本地直接运行方式,请参考仓库内的开发启动指示,使用 uvicorn server.main:app 的方式直接启动 FastAPI/ASGI 应用,并确保网络/端口暴露符合客户端对接要求。
  • 基本使用方法

    • 启动后端服务
      • 使用本地直接运行(开发场景): uvicorn server.main:app --reload
      • 使用 Docker 容器部署运行: docker build -t mcp-geo-server .; docker run -i --env-file .env mcp-geo-server
    • 与客户端对接
      • MCP 客户端需要的最小信息包括 serverName、启动命令及参数,用于建立对 MCP 服务器的连接与交互。
    • 测试与诊断
      • 读取 /tools/list、/tools/describe、/resources/list 等,确认工具与资源元数据可用。
      • 通过 /mcp 进行简单的 JSON-RPC 请求测试,例如初始化、列出工具等,校验响应格式和协议版本协商。
  • 补充说明

    • 文档中提供了详细的 API 端点、工具/资源描述、ETag、限流、日志、以及 MCP-Apps UI 的集成方式,便于开发者对接和扩展。
    • 若要在生产环境中部署,请配合合适的反向代理、TLS、密钥管理和可扩展的部署方案(如容器编排、CI/CD)。

服务器信息