IGN API Carto MCP服务器
MCP(模型上下文协议)服务器,用于通过IGN的CARTO API查询法国地理数据

📋 目录
关于
该MCP服务器允许访问丰富的地理数据IGN(国家地理和林业信息研究所) 直接从Claude桌面或任何其他MCP兼容客户端。
它展示了IGN API Carto生态系统的主要API,允许以自然语言查询法国地籍、农业、环境、城市规划和行政数据。
Cas d'usage
- 🏘️ 分析地籍和地块数据
- 🌾 查看农业声明(RPG)
- 🌳 确定自然保护区
- 🏗️ 检查城市规划法规(PLU、GPU)
- 🍷 当地人将葡萄球菌命名为
- 🗺️ 获取地理定位的行政数据
功能
可用工具
| Outil | 描述 | 用法 | |
|---|---|---|---|
ign_get_communes_by_postal_code | 检索与邮政编码关联的城市 | 地址解析、邮政统计 | |
ign_get_cadastre_parcelles | 搜索地籍地块 | 土地研究、房地产分析 | |
ign_get_cadastre_communes | 获取地籍公共边界 | 领土划界、制图 | |
ign_get_rpg | 查询图形地块登记册 | 农业分析、环境 | |
ign_get_nature_areas | 自然保护区(Natura 2000、Znieff、公园) | 环境研究、生物多样性 | |
ign_get_gpu_urbanisme | 城市规划地理门户的城市规划数据 | PLU验证,可施工性 | |
ign_get_aoc_viticoles | 葡萄园产区(AOC、IGP、VSIG) | 葡萄栽培,葡萄酿造 | 需要API密钥 |
ign_wfs_geoportail | 对Geoportal WFS流的通用访问 | 各种地理数据 | |
ign_get_administrative_limits | 行政边界(市、省、地区) | 领土划分、统计 |
先决条件
- Node.js 16+et npm
- 克劳德桌面版 与客户端MCP兼容
- 访问IGN API的Internet连接
安装
1.克隆存储库
git clone https://github.com/votre-utilisateur/ign-apicarto-mcp-server.git
cd ign-apicarto-mcp-server2.安装依赖项
npm install3.配置环境变量
# Copier le fichier d'exemple
cp .env.example .env.local编辑 .env.local 如果您想使用AOC Viticoles端点,请添加IGN API密钥:
# Obtenir une clé gratuite : https://geoservices.ign.fr/
IGN_API_KEY=votre_cle_api4.编制项目
npm run build编译的服务器将在文件夹中可用 dist/.
配置
使用首选IA客户端配置此MCP服务器。单击您正在使用的客户端以查看详细说明。
🖥️ Claude Desktop
配置克劳德桌面
将以下配置添加到文件中 claude_desktop_config.json :
建筑师的安置:
| 系统 | 路径 |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| 窗户 | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
配置:
{
"mcpServers": {
"ign-apicarto": {
"command": "node",
"args": ["/chemin/absolu/vers/ign-apicarto-mcp-server/dist/index.js"]
}
}
}⚠️ 重要 替换: /chemin/absolu/vers/ 通过安装的完整路径。
⌨️ Claude Code (CLI)
配置克劳德代码
Claude Code使用一个文件 .mcp.json 用于配置MCP服务器。
项目配置(推荐):
创建文件 .mcp.json 在项目的根源:
{
"mcpServers": {
"ign-apicarto": {
"command": "node",
"args": ["/chemin/absolu/vers/ign-apicarto-mcp-server/dist/index.js"]
}
}
}配置全局:
要在所有项目中使用,请在 ~/.claude/.mcp.json.
激活服务器:
第一次启动时,Claude Code将要求您批准服务器。您还可以通过在设置中添加以下内容自动激活它:
{
"enableAllProjectMcpServers": true
}或者具体地:
{
"enabledMcpjsonServers": ["ign-apicarto"]
}📝 Cursor
配置光标
光标使用非虚构 mcp.json 倒la配置MCP。
建筑师的安置:
| 范围 | 路径 |
|---|---|
| 项目 | .cursor/mcp.json (在项目的根源) |
| 全球 | ~/.cursor/mcp.json |
配置:
{
"mcpServers": {
"ign-apicarto": {
"command": "node",
"args": ["/chemin/absolu/vers/ign-apicarto-mcp-server/dist/index.js"]
}
}
}使用环境变量(可选):
{
"mcpServers": {
"ign-apicarto": {
"command": "node",
"args": ["${workspaceFolder}/ign-apicarto-mcp-server/dist/index.js"],
"env": {}
}
}
}激活服务器:
- 打开光标设置(
Cmd/Ctrl + ,) - 搜索“MCP”
- 激活MCP服务器
- 重新启动Cursor
🤖 OpenAI Codex CLI
配置Codex CLI
OpenAI Codex CLI还通过配置文件支持MCP协议。
建筑师的安置:
~/.codex/mcp.json
配置:
{
"mcpServers": {
"ign-apicarto": {
"command": "node",
"args": ["/chemin/absolu/vers/ign-apicarto-mcp-server/dist/index.js"]
}
}
}注: 确保Codex CLI配置为使用MCP服务器。查看 官方Codex文件 有关激活MCP插件的更多详细信息。
🚀 Google Antigravity
配置谷歌反重力
谷歌反重力 是谷歌的代理开发平台,可免费公开预览。
访问MCP配置:
- 点击 代理会话 在侧面板中
- 选择菜单 "..." 在面板顶部
- 点击 MCP服务器 → 管理MCP服务器
- 选择 查看原始配置 用于编辑
mcp_config.json
配置:
{
"mcpServers": {
"ign-apicarto": {
"command": "node",
"args": ["/chemin/absolu/vers/ign-apicarto-mcp-server/dist/index.js"]
}
}
}HTTP模式(替代):
Antigravity还通过HTTP/SSE支持MCP服务器:
{
"mcpServers": {
"ign-apicarto": {
"url": "http://localhost:3000/mcp"
}
}
}注: Antigravity限制活动工具的总数。如果您使用多个MCP服务器,请将总数保持在50个工具以下,以获得最佳性能。
🔧 Autres clients MCP
通用配置
此MCP服务器与支持模式MCP协议的任何客户端兼容 标准.
连接参数:
| 参数 | 值 |
|---|---|
| 运输 | stdio |
| 命令 | node |
| 论点 | ["/chemin/vers/dist/index.js"] |
HTTP模式(替代):
对于支持HTTP/SSE的客户端,在HTTP模式下启动服务器:
TRANSPORT=http PORT=3000 npm start然后使用URL配置客户端: http://localhost:3000/mcp
运输方式
服务器支持两种通信模式:
STDIO模式(默认)
Claude桌面本地使用的标准模式:
npm startHTTP模式(可选)
对于网络或远程客户端使用:
TRANSPORT=http PORT=3000 npm start环境变量
通过文件配置服务器 .env.local 或直接从命令行:
| 变量 | 描述 | 缺陷 |
|---|---|---|
TRANSPORT | 运输方式(stdio 或 http) | stdio |
PORT | 端口HTTP(模式HTTP唯一性) | 3000 |
IGN_API_KEY 葡萄酒AOC端点的IGN API密钥 | - |
配置文件:
.env.example:具有所有可用变量的模板.env.local:您的本地配置(未版本化)
使用
在Claude Desktop中配置后,您可以使用自然语言查询IGN数据。服务器将自动将您的请求转换为适当的API调用。
配置后重新启动
修改后 claude_desktop_config.json,重新启动Claude Desktop以考虑更改。
已完成的项目
🍷 Margaux Cantenac的领土分析
Margaux Cantenac(Gironde)葡萄酒公社的交互式区域分析应用程序,由Claude和该MCP服务器开发。
🔗 查看交互式演示
功能
该应用程序提供了4个部分的完整区域分析:
| 模块 | 内容 | 使用的API |
|---|---|---|
| 📍 将军 | INSEE代码、WGS84坐标、葡萄酒种植背景 | ign_get_communes_by_postal_code, ign_get_administrative_limits |
| 🏗️ 城市化 52个区域(A、U、N、AU)的地方城市规划 | ign_get_gpu_urbanisme | |
| 🌳 环境 | 梅多克地区自然公园,兹涅夫地区 | ign_get_nature_areas |
| 📐 地籍 | 地籍部分、地块标识符 | ign_get_cadastre_parcelles, ign_get_cadastre_communes |
技术
- 带选项卡导航的React界面
- IGN和INPN数据集成(国家自然历史博物馆)
- 地理可视化(边界框、精确坐标)
- 用于区分领土区域类型的颜色代码
如何复制?
Créé une application React interactive pour analyser le territoire de la commune
de Margaux-Cantenac. Utilise les données IGN pour afficher :
- Les informations administratives
- Le zonage PLU complet
- Les zones naturelles protégées
- Les sections cadastrales
L'interface doit être organisée en onglets avec une navigation fluide.______________________________________________________________________
💡 使用此MCP服务器创建项目? 通过打开一个来分享 !
详细示例
1.查询邮政编码
问题:
Quelles communes sont associées au code postal 75001 ?预期答案:
- 代码为INSEE的城市列表
- 地理坐标
- 行政限制
使用的工具: ign_get_communes_by_postal_code
______________________________________________________________________
2.地籍地块搜索
问题:
Trouve les parcelles cadastrales de la commune avec le code INSEE 75101可能的参数:
- 城市的INSEE代码
- 剖面地籍
- 地块编号
使用的工具: ign_get_cadastre_parcelles
______________________________________________________________________
3.城市分区验证
问题:
Quel est le zonage PLU à ces coordonnées : {"type":"Point","coordinates":[2.35,48.85]} ?返回的信息:
- 区域类型(U、AU、A、N)
- 适用的城市规划条例
- 可施工性限制
- PLU更新日期
使用的工具: ign_get_gpu_urbanisme
______________________________________________________________________
4.自然保护区
问题:
Y a-t-il des zones Natura 2000 à proximité de ce point : {"type":"Point","coordinates":[-1.69,48.10]} ?返回区域的类型:
- 自然遗址2000(ZSC、ZPS)
- ZNIEFF(I型和II型)
- 国家和地区公园
- 自然保护区
使用的工具: ign_get_nature_areas
______________________________________________________________________
5.图形地块登记册(农业)
问题:
Quelles cultures sont déclarées sur cette parcelle agricole en 2023 ?
Géométrie : {"type":"Point","coordinates":[2.35,45.85]}可用数据:
- 文化类型
- 申报表面积
- 代码文化PAC
- 报告年份(2010-2024年)
使用的工具: ign_get_rpg
______________________________________________________________________
6.葡萄球菌名称
注: 此端点需要免费的IGN API密钥。 得到它 地球服务公司。ign.fr
问题:
Cette parcelle est-elle située dans une AOC viticole ?
Coordonnées : {"type":"Point","coordinates":[4.84,45.76]}返回的信息:
- d类名称(AOC、IGP、VSIG)
- 名称
- 名称标识符
- 区域几何
使用的工具: ign_get_aoc_viticoles
配置要求:
# Dans .env.local
IGN_API_KEY=votre_cle_api______________________________________________________________________
7.行政限制
问题:
Dans quel département et quelle région se trouve la commune de Lyon ?可用数据:
- 公共边界
- 部门轮廓
- 区域轮廓
- 官方地理代码
使用的工具: ign_get_administrative_limits
几何体的格式
几何图形必须采用WGS84中的GeoJSON格式(EPSG:4326):
// Point
{"type":"Point","coordinates":[longitude, latitude]}
// Polygon
{"type":"Polygon","coordinates":[[[lon1,lat1],[lon2,lat2],[lon3,lat3],[lon1,lat1]]]}
// MultiPolygon
{"type":"MultiPolygon","coordinates":[[[[lon1,lat1],[lon2,lat2],...]],[...]]}局限性
API IGN限制
| 类型 | 限制 |
|---|---|
| 每个请求的最大结果 | 1000(地籍公社为500) |
| 分页 | 可通过 _start 和 _limit |
| 地理投影 | 仅WGS84(EPSG:4326) |
| 超时请求 | 30秒 |
| 排序格式 | GeoJSON |
功能限制
- ⚠️ wfs geoportail模块已发布 测试版
- 某些数据可能有更新时间
- 复杂的几何形状可能需要简化
- RPG数据可从2010年至2024年获得
数据来源
| 来源 | 数据 | 组织 | 更新 |
|---|---|---|---|
| PCI Express 地块地籍 | DGFIP | 年度 | |
| BD地块 地籍边界 | IGN | 季度 | |
| 角色扮演游戏 图形地块登记册 | ASP | 年度 | |
| MNHN | 自然保护区 | 国家自然历史博物馆 | |
| 图形处理器 | 地方城市规划 | 城市规划地理门户 | 继续 |
| 法国阿格里默 | 葡萄酒名称 | INAO | 年度 |
| 禁止 | 基本国家地址 | IGN/La Poste | 每周 |
发展
项目结构
ign-apicarto-mcp-server/
├── src/
│ ├── index.ts # Point d'entrée du serveur MCP
│ ├── api-client.ts # Client HTTP pour l'API IGN
│ └── types.ts # Types TypeScript
├── dist/ # Fichiers compilés
├── .env.example # Template des variables d'environnement
├── .env.local # Configuration locale (non versionné)
├── .gitignore
├── package.json
├── tsconfig.json
└── README.md可用脚本
# Démarrer le serveur en mode développement
npm run dev
# Compiler le projet
npm run build
# Démarrer le serveur en production
npm start
# Lancer les tests (si disponibles)
npm test
# Vérifier le code
npm run lint贡献者
欢迎捐款!为了贡献:
- 分叉项目
- 为您的功能创建分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 按下分支(
git push origin feature/AmazingFeature) - 打开拉取请求
添加新工具
要添加新的MCP工具:
- 在中创建新文件
src/tools/ - 定义工具架构及其参数
- 实现IGN API调用逻辑
- 将工具保存在
src/index.ts - 在本自述中记录该工具
故障排除
服务器无法启动
检查:
- Node.js 16+测试安装:
node --version - 已安装依赖项:
npm install - 该项目编制如下:
npm run build - 文件
dist/index.js存在
Claude Desktop未检测到服务器
解决:
- 检查路径是否
claude_desktop_config.json是绝对和正确的 - 完全重新启动Claude桌面
- 检查Claude桌面日志:
- macOS: ~/Library/Logs/Claude/ - 窗户: %APPDATA%\Claude\logs\ - Linux: ~/.config/Claude/logs/
API错误
常见问题:
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 超时 | 查询太复杂124简化几何体或缩小面积 | |
| 400错误请求 | 无效设置124检查GeoJSON格式 | |
| 404未找到 | 数据不可用124检查INSEE/邮政编码 | |
| 500服务器错误 | IGN端出现问题 | 稍后再试 |
| 太多结果 | 超过1000个结果124添加过滤器或分页 |
几何问题
几何形状必须在 WGS84(EPSG:4326) 纬度前经度:
✅ Correct : {"type":"Point","coordinates":[2.35, 48.85]}
❌ Incorrect : {"type":"Point","coordinates":[48.85, 2.35]}表演长度
优化:
- 对大面积使用简化几何图形
- 使用参数限制结果的数量
_limit - 使用特定过滤器而不是广泛的查询
- 检查您的internet连接
资源
官方文件
- API文件Carto -完整的API文档
- IGN地理服务 -地理服务门户
- 模型上下文协议 MCP规范
- 克劳德桌面版 -克劳德桌面应用程序
有用的工具
- Geojson.io -创建和可视化GeoJSON几何体
- 预测EPSG -投影系统信息
- Geoportal -查看IGN数据
社区
- -报告错误或建议功能
- 讨论 -提问者
许可证
该项目已获得许可 麻省理工学院.查看文件 许可证 更多详情。
IGN数据
IGN数据应提交给 开放许可证v2.0.
______________________________________________________________________
开发与❤️ 对于法国地理空间社区
