Back to MCP directory
publicPublicdnsLocal runtime

geocontext

实验性MCP服务器,为LLM提供地理空间上下文服务,集成法国地理平台数据和服务,支持地理编码、海拔查询、行政信息、城市规划等空间功能

article

README

🚀 地理上下文服务

这是一个实验性的MCP服务器,旨在为大语言模型(LLM)提供空间上下文信息,助力其在地理数据处理方面更准确地响应。

🚀 快速开始

已发布版本的使用

例如,通过 “Cursor Settings / MCP / Add server” 进行如下配置:

{
  "mcpServers": {
    "geocontext": {
      "command": "npx",
      "args": ["-y", "@ignfab/geocontext"]
    }
  }
}

使用Docker

docker compose build
docker compose up -d

之后,进行如下配置:

{
  "mcpServers": {
    "geocontext": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

✨ 主要特性

使用空间服务

地点信息查询

  • 行政信息adminexpress(lon,lat) 可获取指定地点的行政信息,如城市、部门、地区等。

    示例:“巴黎市政厅的行政信息有哪些?”

  • 地籍信息cadastre(lon,lat) 用于获取指定地点的地籍信息,如地块、图纸等。

    示例:“巴黎市政厅的地籍信息有哪些?”

  • 城市规划信息urbanisme(lon,lat) 可获取指定地点的城市规划信息,如PLU、POS、CC、PSMV。

    示例:“马赛港现行的PLU文件是什么?”

  • 公共服务地役权信息assiette_sup(lon,lat) 用于获取指定地点的公共服务地役权(SUP)信息。

矢量数据探索

探索表格

探索表格结构

探索表格数据

📦 安装指南

构建本地版本

git clone https://github.com/ignfab/geocontext
cd geocontext
npm install
npm run build

使用本地版本

{
  "mcpServers": {
    "mcp-helloworld": {
      "command": "node",
      "args":["/chemin/absolu/vers/geocontext/dist/index.js"]
    }
  }
}

调试本地版本

npx -y @modelcontextprotocol/inspector node dist/index.js

📚 详细文档

动机

大语言模型让人们觉得计算机似乎无所不能,但实际上并非如此。例如,要让助手知道日期和时间,就需要将其与 MCP time 进行对接;要让助手读取网页,就需要将其与 MCP fetch 进行对接。

在地理数据方面,如果用户提出需要助手知道地址位置的问题,答案很可能看似合理但实际上是错误的。虽然从技术上可以连接像APICARTO这样的REST/GeoJSON API,但这些API的设计并不适合(默认返回5000个结果、响应中包含大的几何图形、需要提供复杂的几何图形等)。

因此,本项目的目标是尝试设计一个MCP,使地理平台的数据和服务能够被大语言模型访问

注意事项

  • 此开发项目是与IgnFab合作的概念验证项目(mborne/geocontext 正在归档中)。
  • 如果证明该项目有工业化的价值,仓库将转移到IGN的管理下,并且工具将被重新命名(例如:IGNF/mcp-gpf-server)。
  • 已经识别出了一些可能的问题和改进点,目前正在进行缓解和解决(详见 issues)。
  • 该工具并非万能(可参考 功能特性 了解其能力范围)。

设计原则

  • 不复制地理平台的数据:目的是识别服务可能的改进之处,而不是重复数据。
  • 尽量减少响应的大小:目的是优化令牌数量、避免幻觉现象、能够使用本地模型。

参数配置

对于高级使用场景,可参考以下参数配置: | 属性 | 详情 | 默认值 | | ---- | ---- | ---- | | TRANSPORT_TYPE | 传输方式,可在 "stdio" 和 "http" 之间选择 | "stdio" |

🔧 技术细节

本项目依赖以下技术和工具:

  • mcp-framework:提供MCP的开发框架。
    # 例如,用于展示WMTS图层列表
    mcp add tool gpf_wmts_layers
    
  • @camptocamp/ogc-client:用于读取WFS、WMTS等服务的XML响应。
  • MiniSearch:用于关键字搜索。
  • jsts:用于几何处理(例如,按与搜索点的距离对响应进行排序)。

🤝 贡献指南

问题反馈与功能需求

如果您遇到问题,请随时 创建一个issue。请提供以下信息:

  • 使用的助手和模型。
  • 向助手提出的问题(例如:“跨越塞纳河的桥梁有多少座?”)。

提出新功能建议

欢迎您为项目贡献新功能:

  1. 分叉仓库。
  2. 创建新的工具。
  3. 进行本地测试。
  4. 提交拉取请求。

📄 许可证

本项目采用 MIT 许可证。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client