PostGIS Yukon MCP

PostGIS Yukon MCP

Enables natural language and geospatial queries on PostGIS databases, with 32 tools for spatial analysis, geometry operations, and database management.

Category
访问服务器

README

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选