Token导航 LogoToken导航TokenDH.com
PostGIS Yukon MCP logo
数据服务stdio官方级别未说明来源级核验

PostGIS Yukon MCP

MCP Server

基于fastMCP框架的PostGIS工具服务器,提供空间查询、几何操作、空间分析和数据库管理等功能,支持自然语言转SQL查询。

工具数

0

提示词数

0

GitHub Stars

3

资源数

0
Python数据分析自然语言查询

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

zmGiser

提供方

zmGiser

最后核验

2026/5/17 20:37

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

PostGIS MCP Server

基于 fastMCP 框架的 PostGIS 工具 MCP 服务器实现。

🌟 新功能: Text-to-SQL

现在支持使用自然语言查询PostGIS数据库!无需编写复杂的SQL语句,只需用中文或英文描述您的查询需求。

示例:

  • "查询表:buildings 坐标120.5,30.2 附近500米的建筑"
  • "为表:roads创建100米缓冲区"
  • "计算表:parks的面积"

详细信息请查看 Text-to-SQL文档

项目简介

本项目使用 fastMCP 框架封装 PostGIS 地理空间数据库工具,通过 MCP (Model Context Protocol) 协议提供标准化的工具接口。

项目结构

yukon_mcp_service/
├── src/
│   ├── __init__.py           # 包初始化
│   ├── server.py             # MCP 服务器主入口
│   ├── tools/                # 工具模块
│   │   ├── __init__.py
│   │   ├── spatial_query.py  # 空间查询工具
│   │   ├── geometry.py       # 几何操作工具
│   │   └── analysis.py       # 空间分析工具
│   └── config/
│       ├── __init__.py
│       └── database.py       # 数据库配置
├── tests/                    # 测试文件
│   ├── __init__.py
│   └── test_tools.py
├── pyproject.toml            # 项目配置
├── requirements.txt          # 依赖列表
└── README.md                 # 项目说明

功能特性

空间查询工具(3个)

  • query_nearby - 根据坐标查询附近的地理要素
  • query_bbox - 空间范围查询
  • query_attribute - 根据属性查询要素

几何操作工具(5个)

  • buffer_geometry - 创建几何缓冲区
  • get_area - 计算几何面积
  • get_length - 计算几何长度
  • transform_coords - 坐标系统转换
  • simplify_geom - 简化几何对象

空间分析工具(5个)

  • measure_distance - 计算两个几何对象之间的距离
  • test_intersection - 检查几何对象相交关系
  • test_containment - 检查几何对象包含关系
  • union_geoms - 合并多个几何对象
  • get_centroid - 计算几何对象质心

数据库管理工具(9个)

  • postgis_version - 获取 PostGIS 版本信息
  • list_extensions - 列出已安装的数据库扩展
  • discover_spatial_tables - 发现包含空间字段的表
  • table_info - 获取表的详细空间信息
  • create_index - 为空间列创建 GIST 索引
  • analyze - 分析表以更新统计信息
  • vacuum - 清理表以回收空间
  • spatial_extent - 获取表的空间范围
  • validate_geometries - 检查几何对象有效性

高级空间分析工具(8个)

  • join_spatial - 执行空间连接操作
  • find_nearest - 查找最近的K个邻居
  • cluster_spatial - 使用 DBSCAN 进行空间聚类
  • compute_convex_hull - 计算凸包
  • generate_voronoi - 生成 Voronoi 多边形
  • interpolate_line - 沿线段插值点
  • snap_geometry - 将几何对象捕捉到网格
  • split_line - 使用点分割线段

Text-to-SQL 工具(2个)

  • nl_to_sql - 将自然语言转换为PostGIS SQL语句
  • execute_sql - 安全执行SQL查询(需用户确认)

共计 32 个专业 PostGIS 工具

安装依赖

pip install -r requirements.txt

配置说明

在使用前需要配置 PostGIS 数据库连接信息:

# src/config/database.py
DB_CONFIG = {
    "host": "localhost",
    "port": 5432,
    "database": "your_database",
    "user": "your_user",
    "password": "your_password"
}

运行服务

python -m src.server

使用示例

通过 MCP 协议调用工具:

# 查询指定坐标附近的要素
result = await mcp_client.call_tool(
    "query_nearby",
    {
        "longitude": 120.123,
        "latitude": 30.456,
        "radius": 1000
    }
)

开发指南

添加新工具

  1. src/tools/ 目录下创建新的工具模块
  2. 使用 @mcp.tool() 装饰器定义工具函数
  3. server.py 中注册新工具

示例:

@mcp.tool()
async def my_spatial_tool(param1: str, param2: float) -> dict:
    """工具描述"""
    # 实现逻辑
    return {"result": "data"}

技术栈

  • Python 3.8+
  • fastMCP
  • PostGIS
  • psycopg2
  • asyncio

许可证

MIT License

目录标签

目录标签

Python数据分析自然语言查询地理空间数据库本地部署空间分析PostGIS工具数据库管理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP