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)。