alexrobl/geoanalisis-mcp

GitHub: alexrobl/geoanalisis-mcp

一款集成 Claude Desktop 的空间数据分析与制图 MCP 服务器,用自然语言即可完成矢量数据读取、统计分析和专业地图生成。

Stars: 3 | Forks: 0

# GeoAnalisis MCP 用于读取、分析和制图矢量空间数据的 MCP 服务器,与 Claude Desktop 集成。只需一条自然语言指令即可生成专业地图,无需打开桌面 GIS。 ![GeoAnalisis MCP 的工作原理](https://static.pigsec.cn/wp-content/uploads/repos/cas/e3/e3e7429c456ea4bea4a11b78ee4e9be75a1d22683993b5714f21bf0e02fdbc1f.png) ## 工具 | Tool | 描述 | |------|-------------| | `list_layers` | 列出空间文件中的图层,包含几何类型、feature count 和 CRS | | `get_layer_schema` | 图层的完整 schema:字段、类型、bbox、CRS | | `scan_field_stats` | 按字段生成描述性统计(数值型和类别型) | | `read_features` | 读取 feature 作为 GeoJSON FeatureCollection,支持 WHERE 和 bbox 过滤器 | | `preview_geometries` | 以 WKT 格式预览几何图形 | | `render_map` | Leaflet 交互式地图(平移/缩放、点击查看属性、支持图层切换的多图层、图例、比例尺) | | `export_map_image` | 导出地图图像(JPG/PNG/PDF/SVG),包含 basemap、符号系统、图例、比例尺、指北针和标注 | | `export_map_cartographic` | 正式地图平面图:标题、包含图例和位置索引的侧边栏、图形比例尺、指北针和坐标网格 | **通用功能**(由三种地图工具共享): - **多图层** — `extra_layers` 可叠加额外图层,每个图层可单独配置颜色、线型、透明度和标签。 - **符号系统** — 使用 `color_by` 进行快速分类,或使用高级 `style`(如 `categorized` / `graduated`,支持色彩渐变和类别截断)。 - **自定义 basemap** — `basemap` 接受 ArcGIS MapServer 切片根 URL 或 XYZ 模板 `{z}/{x}/{y}`;默认使用 CartoDB Positron。 - **过滤器** — `where`(OGR SQL)和 `bbox`;使用 `where` 时,地图范围会自动适应过滤后的 feature。 - **CRS** — 自动重投影至 WGS84;对于未声明参考系统的文件,可使用 `source_crs` / `crs` 指定。 - **标注** — `label_by` 通过字段对 feature 进行智能定位标注。 **支持的格式:** FileGDB (`.gdb`)、Shapefile (`.shp`)、GeoJSON、GeoPackage (`.gpkg`)、KML 以及任何 GDAL/OGR 兼容的矢量格式。 ## 在 Claude Desktop 中安装(推荐) 需要安装 [uv](https://docs.astral.sh/uv/)。 1. 从 [Releases](https://github.com/alexrobl/geoanalisis-mcp/releases) 下载 `geoanalisis-mcp-X.Y.Z.mcpb` 2. 使用 Claude Desktop 打开它(双击或 *设置 → 扩展 → 安装扩展*) 3. 完成 — 首次启动时依赖项将自动通过 uv 解析 从源代码生成 bundle: ``` npx @anthropic-ai/mcpb pack . geoanalisis-mcp.mcpb ``` ## 手动安装(开发) 需要 Python ≥ 3.11 和 [uv](https://docs.astral.sh/uv/)。 ``` git clone https://github.com/alexrobl/geoanalisis-mcp cd geoanalisis-mcp uv sync ``` 将以下内容添加到你的 `claude_desktop_config.json` 中: ``` { "mcpServers": { "geoanalisis": { "command": "/ruta/al/repo/.venv/bin/geoanalisis-mcp" } } } ``` ## render_map 直接在 Claude 中使用 Leaflet 生成交互式 HTML artifact,提供双重输出: - **聊天内联显示** — 支持平移、缩放、点击 feature 查看属性、图层切换控件、图例、比例尺和光标坐标。在 Claude 的沙盒环境中,外部切片会被拦截,因此背景显示为灰色。 - **磁盘上的高保真版本** — 同时保存一个 HTML(`{capa}_dynamic.html`),在浏览器中打开时 basemap 可以正常加载。 数据在服务端进行嵌入(如果超出 `limit` 则进行均匀采样),不占用对话上下文。 ## export_map_image 和 export_map_cartographic 使用 matplotlib + contextily 在服务端生成图像:在聊天中内联显示(72 DPI),并以高分辨率保存到磁盘(`dpi` 可配置;当 `dpi > 150` 时,basemap 切片会请求更高的缩放级别以保持清晰度)。两者都会返回一个文本报告,说明实际应用于每个图层的符号系统。 - `export_map_image` — 用于快速审查的视图:包含图例、比例尺、指北针和可选的来源信息。输出 `.png`、`.jpg`、`.pdf`(矢量)或 `.svg`。 - `export_map_cartographic` — 正式的交付产品:包含机构标题、带有图例、图例说明和位置索引的侧边栏,以及带有指北针、图形比例尺和来源说明的底部条带。推荐日常作业使用 `.jpg`,正式交付使用 `.pdf`。
标签:GeoJSON, Leaflet, MCP服务器, 地图渲染, 地理信息系统, 空间数据分析, 逆向工具