Evan-Crx/permisapi-mcp

Evan-Crx/permisapi-mcp

от evan-crx
Сервер MCP для доступа к 1,2 млн+ разрешений на строительство во Франции. Ищите по адресу, получайте score MDB, PLU, риски и кадастр. Инструмент для девелоперов, инвесторов и маршанов де биен при п...

permisapi-mcp

Serveur MCP (Model Context Protocol) pour PermisAPI.

Il permet à Claude, ChatGPT, Claude Desktop, Cursor, Windsurf ou tout client compatible MCP d'interroger en langage naturel 1,3 million de permis de construire en France (base Sitadel, permis autorisés depuis 2013, 101 départements, logements et locaux).

18 outils en lecture seule : recherche par critères ou par adresse, score d'opportunité marchand de biens v0.3 et son explication (les 11 signaux pondérés, commentés en français), ventes immobilières voisines (DVF, ventes de 2021 à 2025) et prix au m², zonage PLU, risques Géorisques (inondation, séisme, sites Seveso proches…), parcelle cadastrale DGFiP, bâtiments existants (terrain nu ou déjà bâti), parcelles voisines, recherche dans un polygone GeoJSON (ZAC, périmètre d'opération), statistiques de densité par commune, budget de chantier estimé et entreprises du bâtiment proches (base SIRENE, codes NAF 41, 42 et 43), enrichissement d'une liste.

Deux façons de l'utiliser

Инструменты были проиндексированы:
bulk_enrich_listтолько чтениеидемпотентныйвнешний мир

Сопоставляет предоставленный пользователем список (макс. 1000 строк) с разрешениями Франции, чтобы за 1 вызов получить: разрешения поблизости + оценку возможности + риски + зонирование + кадастровый участок. Только тарифы Business и Entreprise (иначе 402), стоимость = 1 единица квоты за строку. Сценарий использования: обогатить список потенциальных клиентов/имущества. 3 режима на строку: (lat+lng) или (adresse) или (commune+section+numero). Поле 'ref' идентифицирует каждую строку в ответе.

Сопоставляет список адресов

Параметры
  • max_matchesinteger

    Максимальное количество permits, возвращаемых на строку. По умолчанию 3 (три ближайших). Стоимость квоты = len(rows) единиц (не умножается на max_matches).

  • radius_minteger

    Радиус в метрах вокруг найденной точки для поиска связанных разрешений. По умолчанию 500 м (типичная жилая зона). Увеличить до 1000-2000 м для сельской местности, уменьшить до 100-200 м для плотной городской застройки.

  • rowsobject[]обязательный

    Список строк для обогащения (1-1000). Каждая строка должна иметь уникальный ref (возвращается в ответе) и как минимум ОДИН из 3 режимов идентификации: lat+lng (координаты GPS WGS84), adresse (произвольный текст, геокодируется через BAN) или commune+section+numero (кадастровый номер DGFiP). Можно смешивать: строка 1 через lat/lng, строка 2 через адрес, строка 3 через кадастр.

find_dvf_neighborsтолько чтениеидемпотентный

Возвращает топ N ближайших к разрешению сделок с недвижимостью DVF (продажи с 2021 по 2025 год, Geo-DVF Etalab). Поведение: вызывает GET /v1/permits/{num_pa}/dvf, который делает пространственное соединение по GPS-координатам разрешения и возвращает прошлые продажи близлежащих объектов с их ценой, датой, типом (дом/квартира/хозпостройка/коммерческое помещение), площадью, числом комнат и расстоянием в метрах. Фильтрует на стороне сервера сделки < 1000 EUR (дарения DGFiP). Payload содержит dvf_median_price_per_m2 (медианная цена за м² по кварталу в EUR/м²), dvf_median_sample_size (число продаж в медиане) и dvf_median_basis (правило простым текстом). Это медиана разрешения, та же, что в get_permit_full_view и get_mdb_score: она считается по 5 соседним продажам, отобранным по score (не менее 1 000 EUR, по одной на сделку), у которых площадь застройки от 10 до 1 000 м², независимо от limit и фильтров (они меняют только список matches). Медианная цена, посчитанная по малому числу продаж (dvf_median_sample_size), мало показательна. Назначение: оценить цену за м² по кварталу, откалибровать предложение о покупке, проверить соответствие DVF заявленной цене. limit=3 возвращает 3 ближайшие продажи, limit=5 (максимум) - 5 ближайших; type_local=1,2 перечисляет только дома и квартиры. Стоимость: 1 единица квоты. Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402).

Соседние продажи по разрешению

Параметры
  • limitinteger

    Максимальное количество ближайших транзакций DVF для возврата. Сортировка по возрастанию расстояния. По умолчанию 3 (достаточно для быстрой проверки). Максимум 5 для этого инструмента (транзакции за пределами пяти ближайших теряют актуальность).

  • min_yearinteger

    Минимальный год транзакции (фильтрует более старые транзакции). Продажи в базе идут с 2021 по 2025: 2024 = только 2024 и 2025. Не указывать, чтобы охватить весь период.

  • num_pastringобязательный

    Уникальный идентификатор разрешения Sitadel (например 0930662500027). 13 буквенно-цифровых символов.

  • type_localstring

    Фильтр по типу недвижимости DVF (CSV поддерживается). Коды DGFiP: 1=Дом, 2=Квартира, 3=Вспомогательное помещение (пристройки типа гараж / подвал), 4=Коммерческое/промышленное помещение. Пример 1,2 — оставить только дома и квартиры. Опустите, чтобы не фильтровать по типам.

fuzzy_search_addressesтолько чтениеидемпотентный

Выполняет нечёткий поиск адресов по свободному тексту (улица, город, lieudit). Использует pg_trgm на стороне БД: нечувствителен к диакритике и регистру, терпим к опечаткам. Помогает найти разрешение, когда известен приблизительный адрес, но нет точного почтового индекса или точного кода commune INSEE. Все формулы (в географическом периметре формулы). Стоимость квоты = количество возвращённых результатов (максимум limit, минимум 1), как в search_permits. Пример: 'rue victor hugo paris', 'cours de l ile bordeaux'.

Ищет по адресу

Параметры
  • dep_codestring

    Ограничивает конкретным департаментом (например, '75').

  • limitinteger
  • qstringобязательный

    Произвольный текст для поиска (мин. 2 символа).

get_commune_density_statsтолько чтениеидемпотентный

Возвращает макростатистику плотности городской застройки для коммуны за один вызов: количество кадастровых участков DGFiP + общая площадь + количество кадастровых зданий (капитальные / легкие / прочие) + количество исторических разрешений (с 2013 года) с разбивкой по годам, по типу (PC_LOGEMENT, PC_LOCAUX, PA, PD, DP) и по распределению Score MDB v0.3 (low / medium / high / premium) + показатель плотности (зданий на км² + tier tres_dense / dense / moyen / faible). Сценарии использования: обзор коммуны для мониторинга рынка, сравнение зон перед принятием решения по земельным вопросам. Paris, Lyon, Marseille: округ (75101-75120, 69381-69389, 13201-13216) учитывает собственные разрешения (Sitadel публикует их под городом; они привязываются по номеру разрешения или по почтовому индексу участка в Marseille, см. plm_mapping); весь город (75056, 69123, 13055) объединяет все свои округа. Только тарифы Business и Entreprise (иначе 402); статистика агрегированная, без ограничения по департаменту. Стоимость квоты: 3 составные единицы. Источники: cadastre.data.gouv.fr Etalab + Sitadel SDES.

Показатели коммуны

Параметры
  • commune_codestringобязательный

    Код INSEE: 5 заглавных буквенно-цифровых символов коммуны. Примеры: '75104' Париж 4-й округ, '33063' Бордо, '69384' Лион 4-й округ, '2A004' Аяччо (Корсика). Для Парижа, Лиона или Марселя целиком: '75056', '69123', '13055' (объединяет все округа).

get_contractorsтолько чтениеидемпотентный

Местные компании BTP вокруг разрешения: 'кто электрики / сантехники / каменщики в радиусе X км от этой стройки?'. Коды NAF для каждого лота из breakdown_by_lot (get_economics: общестроительные работы, сантехника, электрика и т. д.) используются как фильтр naf_codes. Поведение: вызывает GET /v1/permits/{num_pa}/contractors, который обращается к базе SIRENE INSEE, отфильтрованной по NAF 41/42/43 (BTP), загружаемой ежемесячно: 1 086 952 действующих организаций во Франции, из них 830 860 геолоцированы в WGS84 (покрытие 76,4 %). Поиск PostGIS ST_DWithin по официальным координатам Lambert93, преобразованным в WGS84. Сортировка по возрастанию расстояния. Пагинация через has_more. Необязательные фильтры: (1) naf_codes CSV (например 43.21A,43.21B электричество), ограничен кодами 41/42/43 BTP, принимает компактный формат 4321A; (2) radius_m от 500 до 50 000 м (по умолчанию 5 000 м); (3) limit 1-100 (по умолчанию 20); (4) effectif_min нижняя граница диапазона INSEE (по умолчанию 0 = все размеры); (5) include_inactive boolean (по умолчанию false = только административно активные). Возвращает для каждой компании: siren / siret / юридическое название / коммерческое название / код NAF + расшифровка / головной офис да-нет / диапазон численности (от 00 до 53 INSEE) + границы числа сотрудников / стаж в годах / полный адрес / коммуна / расстояние в метрах. Пример запроса: 'я нашёл разрешение в Париже, какие электрики с кодом NAF 43.21A находятся в радиусе 5 км и имеют не менее 10 сотрудников?'. Стоимость: 5 единиц составной квоты (защита от злоупотреблений). Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402). 422, если разрешение не геолоцировано или если коды NAF вне области BTP.

Строительные компании поблизости

Параметры
  • effectif_mininteger

    Минимальный штат сотрудников (по умолчанию 0 = все размеры, 10 = не менее 10 сотрудников и т. д.). Фильтр по нижней границе категории INSEE. Полезен для отбора субподрядчиков, способных взять крупный заказ.

  • include_inactiveboolean

    Если true, включает организации SIRENE, закрытые административно (по умолчанию false).

  • limitinteger

    Максимальное количество возвращаемых компаний (1-100, по умолчанию 20). Сортировка по возрастанию расстояния (сначала ближайшая).

  • naf_codesstring

    CSV с кодами NAF для фильтрации (например, 43.21A,43.21B для электрики, 43.22A,43.22B для сантехники / отопления / кондиционирования, 41.20A для строительства индивидуальных домов). Канонический формат SIRENE с точкой (XX.XXL) или компактный (XXXXL). Все коды должны относиться к разделам 41/42/43 (BTP), иначе 422. Опционально, по умолчанию все коды BTP. Максимум 50 кодов, защита от злоупотреблений.

  • num_pastringобязательный

    Уникальный идентификатор разрешения Sitadel (например 0930662500027). 13 буквенно-цифровых символов.

  • radius_minteger

    Радиус поиска в метрах вокруг центроида разрешения. Мин 500, макс 50 000, по умолчанию 5 000 (5 км). Малый радиус = непосредственно местные компании. Большой радиус = расширенный рынок труда (полезно в сельской местности).

get_economicsтолько чтениеидемпотентный

Оценка бюджета стройки по разрешению: 'сколько будет стоить этот проект?' с диапазоном низкий / медианный / высокий (EUR), детализация по м², определённый сценарий (новое строительство, капитальный / лёгкий ремонт, снос, благоустройство). Поведение: вызывает GET /v1/permits/{num_pa}/economics, который объединяет 3 источника: (1) площади, заявленные застройщиком в разрешении Sitadel (SURF_HAB_CREEE + SURF_LOC_CREEE + преобразования) с fallback-ratio по участку, когда их нет; (2) статическая калиброванная шкала по публичной литературе Capeb / FFB / Anjou Construction 2024 (стоимость за м² по типу проекта, с поправкой по департаменту: Paris +25%, Côte d'Azur +20%, региональные метрополии +5%; и по размеру: микро +20%, крупные программы -15%); (3) официальный модулятор INSEE ICP-BT (Indice du Coût de Production des Bâtiments, база 2015), который актуализирует реальную инфляцию затрат (декабрь 2025 = 114.9 = +14.9% с 2015). Возвращает также confidence 0.0-1.0 (высокая, если площадь заявлена и INSEE доступен, низкая при fallback по участку), применённые модуляторы (детализацию расчёта) и контекстные заметки на французском. Применяется, чтобы подготовить оферту о покупке, ответить на тендер, сравнить заявленный бюджет досье с оценкой. Стоимость: 3 единицы квоты. Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402). Возвращает также breakdown_by_lot (общестроительные работы 38%, сантехника 11%, электрика 9% и т. д. в зависимости от сценария) со связанными кодами NAF SIRENE, которые можно использовать как фильтр naf_codes в get_contractors (ближайшие компании BTP, по лотам).

Ориентировочный бюджет строительной площадки

Параметры
  • num_pastringобязательный

    Уникальный идентификатор разрешения Sitadel (например 0930662500027). 13 буквенно-цифровых символов.

get_existing_buildingsтолько чтениеидемпотентныйвнешний мир

Перечисляет кадастровые здания, уже построенные на участке, указанном в разрешении. Различает незастроенный участок (новое строительство) и уже застроенный участок (пристройка, реконструкция). Возвращает общее число nb_batiments + разбивку по типу (капитальное строение / лёгкое строение / другое) + флаг parcelle_nue boolean + детали по каждому объекту (id Etalab, тип label FR, центроид, даты создания/MAJ кадастра). Источник: cadastre.data.gouv.fr через Etalab (DGFiP). Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402). Стоимость: 1 единица квоты. 404, если указанная в разрешении кадастровая ссылка отсутствует или не найдена в кадастре.

Здания, уже находящиеся на участке

Параметры
  • num_pastringобязательный

    Уникальный идентификатор Sitadel (например, 0930662500027).

get_mdb_scoreтолько чтениеидемпотентный

Вычисляет Score Opportunité Marchand de Biens v0.3 для разрешения. Поведение: вызывает GET /v1/permits/{num_pa}/score, который возвращает оценку 0-100, tier (low < 30, medium 30-59, high 60-79, premium >= 80), version: "v0.3", method и детализацию 11 взвешенных сигналов: components (значение 0-100 каждого сигнала: type, surface, dvf_value, dep_activity, demandeur, dvf_coherence, density, plu, risk, sirene, building_density) и weights (вес). Тот же расчёт, что и у поля score_mdb в списках и в представлении 360. Объяснение на французском для каждого сигнала даёт get_score_explanation. Назначение: предварительно отобрать разрешения с лучшими оценками, не разбирая каждое по отдельности. Пороги: >= 60 = high, >= 80 = premium. Соседние продажи по разрешению перечисляет find_dvf_neighbors. Стоимость: 1 единица квоты. Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402).

Записка о целесообразности разрешения

Параметры
  • num_pastringобязательный

    Уникальный идентификатор разрешения Sitadel (например 0930662500027). 13 буквенно-цифровых символов.

get_neighbor_parcelsтолько чтениеидемпотентный

Возвращает соседние кадастровые участки для разрешения в настраиваемом радиусе (10-2000 м, по умолчанию 200 м) + их историю разрешений (не более 5 на участок). Помогает увидеть активность вокруг разрешения: зона в процессе изменений (несколько недавних разрешений на соседних участках), смежные возможности (соседние участки без недавней активности), уплотнение (соседние участки уже застроены vs свободны). Метод: центроид исходного разрешения через permits.geom, geocode BAN в приоритете, иначе ST_Centroid(cadastre_geom). Поиск PostGIS ST_DWithin по 35M участков Франции с предфильтром commune_code, чтобы задействовать индекс. Расстояние вычисляется в geography для точных метров. Участок исходного разрешения исключается из соседей (без автоссылки). Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402). Стоимость квоты: 1 + количество возвращённых соседей (композитно, согласовано с /360 и /v1/parcelles/{id}). Ответ: permit_commune_code + permit_center lat/lng + search_radius_m + neighbors_count + neighbors (список, отсортированный по возрастанию расстояния). Каждый сосед содержит: id_parcelle 14 символов + section + numero + distance_m точное + contenance_m2 DGFiP + centroid lat/lng + permits_count + permits[] (не более 5 элементов: num_pa + type + annee + etat + surface). Исходный num_pa обычно приходит из search_permits; num_pa соседних разрешений также используются с get_mdb_score. Ошибка 422, если у исходного разрешения нет ни geocode, ни cadastre_geom (~11% разрешений Sitadel).

Соседние участки разрешения

Параметры
  • limitinteger

    Максимальное количество возвращаемых соседних участков (1-50, по умолчанию 10). Сортировка по возрастанию расстояния. Выходить за пределы 20 соседей редко полезно: релевантность MDB снижается с расстоянием, а стоимость квоты растет линейно.

  • num_pastringобязательный

    Идентификатор Sitadel исходного разрешения. Формат: 13 буквенно-цифровых символов (например, '0930662500027' - Сен-Сен-Дени 2025). Получается через search_permits или get_permit_details. Разрешение должно содержать координаты (lat/lng геокоды BAN ИЛИ cadastre_geom) для расчета центроида поиска.

  • radius_minteger

    Радиус поиска в метрах вокруг центроида исходного разрешения (10-2000 м, по умолчанию 200 м). Малый радиус 50-100 м = непосредственно примыкающие участки (квартал). Средний радиус 200-500 м = ближайший квартал. Большой радиус 1000-2000 м = расширенный квартал или даже вся коммуна, если она маленькая.

get_parcelle_by_idтолько чтениеидемпотентныйвнешний мир

Ищет напрямую в кадастре DGFiP по идентификатору Etalab из 14 символов: возвращает за 1 вызов полный контекст участка, не обращаясь к разрешению. Ответ: центроид lat/lng, официальная площадь DGFiP в м², commune (код INSEE + nom), département, section + numero cadastraux + prefix, polygon GeoJSON Polygon, если доступен (берётся из первого связанного разрешения, у которого есть cadastre_geom), счётчик существующих зданий, если polygon доступен (ST_Within), булев флаг parcelle_nue. Сценарий использования: 'я видел участок 75104000AA0123, дай мне всё, что о нём известно, + все связанные исторические разрешения'. Согласовано с /v1/permits/{num_pa}/parcelle, но поиск идёт в обратную сторону: (parcelle -> permits), а не (permit -> parcelle). Связанные разрешения возвращаются через сопоставление commune + section + numero, сортируются по году подачи по убыванию, не более 50. Для Paris/Lyon/Marseille сопоставление arrondissement -> головной город выполняется автоматически. Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402). Стоимость квоты: 1 (участок) + 1 за каждое возвращённое разрешение (составная, согласована с паттерном bulk_enrich_list и /360). Источник: Etalab DGFiP, 35 миллионов участков по всей Франции, ежемесячное обновление. 404, если id_parcelle не существует (проверяйте формат: 14 символов, буквенно-цифровой в верхнем регистре, например '75104000AA0123').

Земельный участок по кадастровому идентификатору

Параметры
  • id_parcellestringобязательный

    Кадастровый идентификатор DGFiP, 14 заглавных буквенно-цифровых символов в строгом формате {commune_5}{prefix_3}{section_2}{numero_4}. Пример Paris 4e: 75104000AA0123 (коммуна 75104, префикс 000, секция AA, участок 0123). Извлекается из ответа get_parcelle_geometry (поле cadastre_id) или search_permits (поле cadastre_id, заполняется для тарифов Régional и выше).

get_parcelle_geometryтолько чтениеидемпотентныйвнешний мир

Точная геометрия кадастрового участка DGFiP по разрешению (через открытые данные Etalab). Возвращает GeoJSON Polygon WGS84 + измеренную площадь в м² + идентификатор Etalab. Позволяет визуализировать точный полигон участка на карте (вместо одной лишь точки lat/lng адреса). Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402). 404, если коммуна ещё не в кэше (редко, вне покрытия Etalab по совсем недавним DOM).

Кадастровый участок разрешения

Параметры
  • num_pastringобязательный

    Уникальный идентификатор Sitadel (например, 0930662500027).

get_permit_detailsтолько чтениеидемпотентный

Получает все известные сведения о разрешении по его идентификатору Sitadel num_pa. Поведение: вызывает GET /v1/permits/{num_pa}, который возвращает полный почтовый адрес, код коммуны INSEE, код департамента, даты (подача, фактическое решение о разрешении, DAACT), площадь участка в м², статус (Autorisé / Annulé / Travaux commencés / Travaux terminés), тип разрешения (PC_LOGEMENT, DP_LOCAUX, PA, PD...), геокодированные GPS-координаты lat/lng и кадастровую ссылку (sec_cadastre1 + num_cadastre1). Назначение: читает за 1 вызов карточку разрешения, для которого известен num_pa. Для известного идентификатора этот инструмент стоит 1 единицу, тогда как search_permits списывает 1 единицу за каждое возвращённое разрешение. Стоимость: 1 единица квоты. Все тарифные планы (в географической зоне действия тарифного плана).

Карточка разрешения

Параметры
  • num_pastringобязательный

    Уникальный идентификатор Sitadel для разрешения. Формат: 13 буквенно-цифровых символов без префикса (например, 0930662500027 для разрешения Seine-Saint-Denis). Без слэшей, без пробелов. Возвращается инструментами search_permits и fuzzy_search_addresses (поиск по адресу).

get_permit_full_viewтолько чтениеидемпотентныйвнешний мир

Полная Vue 360 по разрешению за 1 вызов: детали + sirene + dvf + score MDB + зонирование PLU + риски, то есть содержимое 6 отдельных вызовов, собранное в один. Тарифы Régional, Pro, Business и Entreprise: полный обзор, 6 единиц квоты (1 на подраздел, как 6 отдельных вызовов). Gratuit, Découverte и Explorateur: только детали (1 единица), с полем plan_required_for_full ("regional" : тариф Régional). При сбое подфункции (например, PLU timeout) поле равно null, а ошибка указывается в fetch_errors. Типичная задержка 5-7 с.

Полный просмотр разрешения

Параметры
  • num_pastringобязательный

    Уникальный идентификатор Sitadel (например, 0930662500027).

get_plu_zoningтолько чтениеидемпотентныйвнешний мир

Возвращает зонирование по градостроительным документам PLU/POS для геокодированной GPS-точки разрешения. Поведение: вызывает GET /v1/permits/{num_pa}/plu, который обращается к Géoportail de l'Urbanisme (apicarto.ign.fr) либо возвращает локальный кеш, если данные уже загружались. Возвращает: zonage.code в исходном виде (например, UAa, UG, AU1, Nh...), zonage.libelle в читаемом виде (например, Zone urbaine centrale), zonage.type_zone в нормализованном виде (U - городская застраиваемая / AU - подлежащая застройке / A - сельскохозяйственная незастраиваемая / N - природная незастраиваемая), zonage.constructible - булево значение с юридическим обоснованием, zonage.plu_revision_date - дата последней редакции PLU. Назначение: проверить, попадает ли участок проекта в застраиваемую зону, и выявить зоны, подлежащие застройке (AU). Если has_plu=false, значит в точке разрешения на Géoportail не нашлось ни одного оцифрованного документа градостроительного планирования (причина указана в not_covered_reason). Стоимость: 1 единица квоты. Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402).

Градостроительное зонирование (PLU)

Параметры
  • num_pastringобязательный

    Уникальный идентификатор разрешения Sitadel (например, 0930662500027). 13 буквенно-цифровых символов. Разрешение должно быть геокодировано (известны широта/долгота), иначе 404.

get_risksтолько чтениеидемпотентныйвнешний мир

Возвращает известные природные и техногенные риски по коммуне, к которой относится разрешение, по данным Géorisques BRGM. Поведение: вызывает GET /v1/permits/{num_pa}/risks, который возвращает агрегированный балл 0-100 (risk_score), качественный уровень (risk_tier: low / moderate / high / critical) и список обнаруженных рисков с их кодом (номенклатура GASPAR от Géorisques, официальное название в label). Возможные коды: INONDATION, MVT (движение грунта), SEISME, AVALANCHE, ERUPTION, FEUFOR (лесной пожар), ATMOSPHERE (шторм, молния, град, снег), CYCLONE (только для заморских департаментов), RADON, INDUSTRIEL, NUCLEAIRE, RUPTURE_BARRAGE, TMD (перевозка опасных грузов), ENGINS_GUERRE, горные риски (AFFAISSEMENT_MINIER, INONDATION_MINIERE, GAZ_MINE, ECHAUFFEMENT_DEPOTS) и AUTRE. has_ppr: true, если в коммуне есть ОБЯЗАТЕЛЬНЫЙ К ИСПОЛНЕНИЮ план предупреждения по этому риску (архив GASPAR, файл ppr_lu_le, шаблон ppr_type, название ppr_nom), false, если его нет, null, если это не проверено; покрытый риск считается с коэффициентом x1,5. Это план коммуны, а не зоны адреса. icpe_proches перечисляет объекты Seveso в радиусе 2 км от разрешения (независимо от их коммуны), от ближайшего к самому дальнему, с distance_m в метрах: +15 к баллу за каждый объект, но не больше +30; у негеокодированного разрешения их нет. Каждый риск коммуны добавляет свои баллы (3 за радон, 8 за сейсмику, 10 за наводнение, 20 за промышленный риск...); уровни: низкий ниже 25, умеренный от 25 до 54, высокий от 55 до 74, критический от 75. risk_reasons говорит, откуда взялись баллы (по одной фразе на причину, их сумма даёт risk_score), а risk_summary - что именно измеряет уровень; risk_tier_label даёт уровень по-французски (faible, modéré, élevé, critique). Это риски всей коммуны, а не адреса. Назначение: сообщить покупателю или застройщику о рисках, учтённых по коммуне, прежде чем идти дальше; не заменяет…

Природные и техногенные риски

Параметры
  • num_pastringобязательный

    Уникальный идентификатор Sitadel разрешения (например, 0930662500027). 13 буквенно-цифровых символов. Риски такие же, как у коммуны, но бонус Seveso зависит от положения разрешения (объекты на расстоянии менее 2 км): 2 разрешения одной коммуны могут иметь разные risk_score.

get_score_explanationтолько чтениеидемпотентный

Поясняет Score Opportunité Marchand de Biens v0.3 для разрешения. Поведение: вызывает GET /v1/permits/{num_pa}/score/explain, который возвращает score 0-100 + tier + 11 взвешенных сигналов, для каждого из которых: его название на французском, его доктрина (как он рассчитывается в общем случае), его вес в итоговом score, его рассчитанное значение 0-100 для ЭТОГО разрешения, его итоговый вклад (значение × вес) и контекстуализированная интерпретация на французском ('Démolition pure (PD) : top signal MDB', '850 m² dans le sweet spot MDB', 'Risque critique : rédhibitoire' и т.д.). Включает также top 3 drivers (сигналы, которые тянут score вверх относительно нейтрального 50) и top 3 drags (сигналы, которые тянут его вниз) с их delta_vs_neutral. Плюс все конкретные входные данные, которые использовались (значения на входе: permit_type, superficie_terrain, dep_code, denom_dem, density_class, plu_zone_type, plu_constructible, risk_tier, sirene_naf_prefix, nb_batiments_in_parcelle и т.д.). Назначение: понять оценку ('почему это разрешение получило 87?') и обосновать решение. get_mdb_score даёт оценку, tier и сырое значение каждого сигнала; этот инструмент добавляет к ним названия, интерпретации и вклады. Стоимость: 2 единицы квоты (расчёт композита + интерпретации). Тарифы Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402).

Подробности заметки о возможности

Параметры
  • num_pastringобязательный

    Уникальный идентификатор разрешения Sitadel (например 0930662500027). 13 буквенно-цифровых символов. Получен через search_permits.

search_permitsтолько чтениеидемпотентный

Ищет разрешения на строительство во Франции с комбинируемыми фильтрами: департамент, коммуна, тип разрешения, статус, даты, минимальная площадь, SIREN заявителя. Возвращает страницу разрешений с базовой информацией о них: {"data": [...], "pagination": {page, limit, total, has_next, next_url}}. Все тарифы (включая Gratuit), в пределах географической зоны действия тарифа. Фильтры min_score и max_risk доступны только для тарифов Régional, Pro, Business и Entreprise (Gratuit, Découverte и Explorateur получают 402). Градостроительное зонирование разрешения выдаёт get_plu_zoning (расчёт в реальном времени). Расход квоты = количество возвращённых разрешений (максимум limit, минимум 1). Пример: limit=20 и найдено 15 разрешений => списано 15 единиц. Каждая страница списывается так же: перебор всего департамента страница за страницей может израсходовать большую часть месячной квоты.

Ищет разрешения

Параметры
  • comm_codestring

    Код коммуны INSEE, 5 символов (например, 75116 Париж 16-й округ).

  • date_fromstring

    YYYY-MM-DD. Фильтрует окно формулы, которое никогда не отклоняется: Découverte 180 дней и Explorateur 365 дней, плюс новые разрешения из 2 последних публикаций Sitadel ; Бесплатно: только эти новые разрешения, независимо от их даты.

  • date_tostring

    YYYY-MM-DD. Фильтрует окно формулы, никогда не отклоняется.

  • dep_codestring

    Код департамента INSEE (например, 75 Paris, 33 Bordeaux, 2A Corse-du-Sud, 971 Guadeloupe). Тарифы Gratuit, Découverte, Explorateur и Régional: каждый новый запрошенный департамент добавляется в периметр тарифа до его лимита (1 в Gratuit и Découverte, 5 в Explorateur и Régional), затем периметр блокируется: департамент, запрошенный по ошибке, занимает место в периметре (единственное в Gratuit и Découverte). Без dep_code и comm_code поиск идёт по уже выбранным департаментам. Pro, Business и Entreprise: вся Франция.

  • etat_paenum

    Статус хода работ Sitadel: 2 = Разрешено (дальнейших сведений нет), 4 = Отменено, 5 = Работы начаты, 6 = Работы завершены. Все разрешения в базе были выданы: ни отказов, ни заявок на рассмотрении нет. Без этого фильтра поиск возвращает все статусы, включая отменённые (4).

  • limitinteger

    Максимум разрешений, возвращаемых за вызов. Сортировка по умолчанию по date_reelle_autorisation desc (самые свежие сверху). Стоимость квоты = фактическое число возвращённых разрешений (макс. limit, мин. 1). В тарифе Gratuit 500 единиц в месяц: страница из 20 разрешений потребляет 20.

  • max_riskenum

    Исключает разрешения, у которых уровень риска (Géorisques BRGM) превышает указанный порог. Пример: 'moderate' возвращает только low + moderate. Доступно только для тарифов Régional, Pro, Business и Entreprise (иначе 402). Стоимость: 1 единица за каждое возвращённое разрешение. Уровни: низкий ниже 25, умеренный от 25 до 54, высокий от 55 до 74, критический от 75 баллов (учтённые риски для коммуны и объектов Seveso в радиусе менее 2 км, это не диагностика адреса). Сценарий использования: отсеивать коммуны, которые накапливают много рисков.

  • min_scoreinteger

    Фильтрует разрешения со Score Opportunité MDB >= N (0-100). Доступно только для тарифов Régional, Pro, Business и Entreprise (иначе 402). Возвращает только те разрешения, у которых оценка достигает N, в том же поиске. Стоимость: 1 единица за каждое возвращённое разрешение, как и в любом поиске.

  • min_superficieinteger

    Минимальная площадь участка в м².

  • permit_typeenum

    Тип разрешения Sitadel: PC_LOGEMENT (разрешение на строительство жилья), PC_LOCAUX (разрешение на строительство коммерческих/промышленных помещений), DP_LOGEMENT (предварительное уведомление о строительстве жилья), DP_LOCAUX (предварительное уведомление о строительстве коммерческих/промышленных помещений), PA (разрешение на застройку: земельные участки), PD (разрешение на снос).

  • siren_demstring

    SIREN заявителя (9 цифр).

  • sortstring

    Сортировка результата. Допустимые поля: date_reelle_autorisation, an_depot, superficie_terrain. Допускаются псевдонимы: date_decision, date_autorisation, date (переназначаются на date_reelle_autorisation); date_depot, annee, year (переназначаются на an_depot, с точностью до года, так как Sitadel SDES не публикует полную дату подачи); surface, superficie (переназначаются на superficie_terrain). Префикс '-' задаёт сортировку по убыванию (например, '-superficie_terrain': сначала самые большие площади). По умолчанию '-date_reelle_autorisation'.

search_permits_in_polygonтолько чтениеидемпотентный

Ищет разрешения на строительство, у которых геокодированная точка попадает внутрь пользовательского полигона GeoJSON, заданного пользователем. Для ZAC (Zone d'Aménagement Concerté), зоны активности, периметра операции или любого участка, который не идёт по границам коммуны или департамента. Пример запроса: «дай мне все разрешения на жильё со Score MDB >= 70 в этом полигоне, который я только что нарисовал на карте». Только тарифы Business и Entreprise (для остальных 402, включая Régional и Pro: они сохраняют административные фильтры search_permits). Ограничение площади 1 000 км² (защита от злоупотреблений). Стоимость по квоте: max(2, число возвращённых разрешений), что согласуется с составным шаблоном. Дополнительные фильтры, которые можно комбинировать: dep_code (предварительный фильтр по индексу, ускоряет работу при большом полигоне), permit_type, min_an_depot / max_an_depot, min_score MDB v0.3. Возвращает items + count + polygon_surface_km2 + polygon_center lat/lng (пригодится, чтобы отцентрировать карту по зоне) + filters_applied (эхо фильтров для отладки). Формат полигона - строгий GeoJSON RFC 7946: type: 'Polygon', coordinates: [[[lng, lat], ...]] с замкнутым внешним кольцом (первая точка == последняя, минимум 4 точки). MultiPolygon не поддерживается. Координаты WGS84 EPSG:4326.

Разрешено в многоугольнике

Параметры
  • dep_codestring

    Дополнительный фильтр: код департамента INSEE (например, '75'). На большом полигоне этот предварительный фильтр по индексу ускоряет поиск.

  • limitinteger

    Максимальное количество возвращаемых разрешений (1-500). По умолчанию 100.

  • max_an_depotinteger

    Год депозита максимальный (включительно).

  • min_an_depotinteger

    Минимальный год подачи (включительно). База охватывает разрешения с 2013 года.

  • min_scoreinteger

    Фильтр минимального Score MDB v0.3 (0-100). В сочетании с полигоном возвращает только те разрешения, чья оценка достигает этого порога.

  • permit_typeenum

    Фильтр типа разрешения.

  • polygonobjectобязательный

    Polygon GeoJSON RFC 7946. Строгий формат: {type: 'Polygon', coordinates: [[[lng, lat], ...]]} с замкнутым внешним кольцом (первая точка == последней точке, минимум 4 точки). Пример ZAC Paris 4e: {type: 'Polygon', coordinates: [[[2.34, 48.85], [2.36, 48.85], [2.36, 48.87], [2.34, 48.87], [2.34, 48.85]]]}. Максимальная площадь 1 000 км².

0.5.11основная
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.0
0.2.2
0.2.1
0.2.0
0.1.0

Выберите клиент, чтобы установить Evan-Crx/permisapi-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "evan-crx-permisapi-mcp-6826v4lfeq": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "permisapi-mcp"
      ],
      "env": {
        "PERMISAPI_KEY": "pk_live_VOTRE_CLE"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "evan-crx-permisapi-mcp-6826v4lfeq": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "permisapi-mcp"
      ],
      "env": {
        "PERMISAPI_KEY": "pk_live_VOTRE_CLE"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "evan-crx-permisapi-mcp-6826v4lfeq": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "permisapi-mcp"
      ],
      "env": {
        "PERMISAPI_KEY": "pk_live_VOTRE_CLE"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"evan-crx-permisapi-mcp-6826v4lfeq\",\"type\":\"stdio\",\"command\":\"uvx\",\"args\":[\"--python\",\"3.11\",\"permisapi-mcp\"],\"env\":{\"PERMISAPI_KEY\":\"pk_live_VOTRE_CLE\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "evan-crx-permisapi-mcp-6826v4lfeq": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "permisapi-mcp"
      ],
      "env": {
        "PERMISAPI_KEY": "pk_live_VOTRE_CLE"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add evan-crx-permisapi-mcp-6826v4lfeq --env PERMISAPI_KEY=pk_live_VOTRE_CLE -- uvx --python 3.11 permisapi-mcp

Либо через JSON-конфиг:

claude mcp add-json evan-crx-permisapi-mcp-6826v4lfeq "{\"command\":\"uvx\",\"args\":[\"--python\",\"3.11\",\"permisapi-mcp\"],\"env\":{\"PERMISAPI_KEY\":\"pk_live_VOTRE_CLE\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add evan-crx-permisapi-mcp-6826v4lfeq --env PERMISAPI_KEY=pk_live_VOTRE_CLE -- uvx --python 3.11 permisapi-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.evan-crx-permisapi-mcp-6826v4lfeq]
command = "uvx"
args = ["--python", "3.11", "permisapi-mcp"]

[mcp_servers.evan-crx-permisapi-mcp-6826v4lfeq.env]
PERMISAPI_KEY = "pk_live_VOTRE_CLE"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите Evan-Crx/permisapi-mcp, а в поле команды запуска — строку ниже:
uvx --python 3.11 permisapi-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "evan-crx-permisapi-mcp-6826v4lfeq": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "permisapi-mcp"
      ],
      "env": {
        "PERMISAPI_KEY": "pk_live_VOTRE_CLE"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "evan-crx-permisapi-mcp-6826v4lfeq": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "permisapi-mcp"
      ],
      "env": {
        "PERMISAPI_KEY": "pk_live_VOTRE_CLE"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например evan-crx-permisapi-mcp-6826v4lfeq.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: evan-crx-permisapi-mcp-6826v4lfeq
    command: uvx
    args:
      - "--python"
      - "3.11"
      - "permisapi-mcp"
    env:
      PERMISAPI_KEY: pk_live_VOTRE_CLE
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "evan-crx-permisapi-mcp-6826v4lfeq": {
      "command": "uvx",
      "args": [
        "--python",
        "3.11",
        "permisapi-mcp"
      ],
      "env": {
        "PERMISAPI_KEY": "pk_live_VOTRE_CLE"
      }
    }
  }
}

Похожие MCP-сервера

jbechtel-97/dealflowpro-mcp-server

jbechtel-97/dealflowpro-mcp-server

от jbechtel-97

Анализирует сделки с многоквартирной недвижимостью через ИИ-агентов. DealFlowPro рассчитывает ключевые метрики, скоринг сделок и данные о районе. Полезен для быстрого андеррайтинга инвесторам и ана...

JavaScript⭐ 4
LarryWalkerDEV/mcp-immostage

LarryWalkerDEV/mcp-immostage

от larrywalkerdev

ImmoStage MCP сервер для недвижимости: AI-стайлинг пустых комнат и 3D-рендеры планов этажей. Также сервер классифицирует фото, генерирует немецкие описания и рекомендует стили. Для риелторов и PropTech.

TypeScript⭐ 4
openbnb-org/mcp-server-airbnb

openbnb-org/mcp-server-airbnb

от openbnb-org

MCP инструмент для поиска Airbnb с фильтрами: местоположение, даты, гости, цена, тип жилья. Получайте детальные описания, удобства, правила. Поддерживает пагинацию и геокодирование для точных международных запросов.

JavaScript⭐ 548
ashev87/propstack-mcp

ashev87/propstack-mcp

от ashev87

MCP-сервер для подключения AI-ассистентов к CRM недвижимости Propstack. Позволяет управлять контактами, объектами, сделками и задачами, а также создавать поисковые профили и получать 360-градусную сводку перед звонком. Идеален для риелторов.

TypeScript⭐ 9
kukapay/hyperliquid-whalealert-mcp

kukapay/hyperliquid-whalealert-mcp

от kukapay

MCP сервер для мониторинга крупных сделок (китов) на Hyperliquid. Флаг позиции с номиналом более $1 млн — полезный инструмент для трейдеров, желающих отслеживать движение крупного капитала. Получай...

Python⭐ 14
echojobsio/jdl-mcp-server

echojobsio/jdl-mcp-server

от echojobsio

MCP сервер для поиска по 1 млн+ вакансий от 20 000 компаний. Бесплатно, 500 запросов/день, без регистрации. Фильтры: зарплата, удалёнка, навыки и другое. Полезен разработчикам и рекрутерам.

JavaScript⭐ 2
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин