Koskamo

Mitoyens MCP

A read-only MCP server that allows AI agents to query, rank, compare, and visualize pesticide exposure data by French commune, including school proximity, tap water analysis, and agricultural parcel maps.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Mitoyens MCP logo, by MitoyensVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Mitoyens
MCP endpoint (Streamable HTTP)
https://mitoyens.fr/api/mcp
Vendor documentation

What you can do with it

  • Search communes by name or postal code
  • Get commune exposure profile and school proximity
  • Compare pesticide exposure across multiple communes
  • View interactive maps of agricultural parcels near a location

Source and maintenance

Vendor evidenceRegistry 1.1.0

Protocol and capabilities

Server
mitoyens-data 1.1.0
MCP protocol
2025-06-18
Tools
9 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "resources": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Données d’exposition aux pesticides par territoire en France (Mitoyens, mitoyens.fr). Lecture seule. La licence dépend de l’outil et figure dans chaque réponse : Licence Ouverte 2.0 (Etalab) pour search_communes, rank_communes, show_commune_map, get_tap_water ; CC BY-NC 4.0, usage non commercial, pour get_commune_exposure, compare_communes, department_profile, get_school_proximity ; données de tiers soumises aux conditions de leurs producteurs (EFSA OpenFoodTox : CC BY-ND 4.0, Commission européenne), pour get_substance. Présentation : pour identifier une commune auprès de l’utilisateur, utiliser le nom + le code postal (et le département si utile). NE PAS afficher le code INSEE, que le grand public ne connaît pas — c’est un identifiant technique réservé aux appels d’outils. Désambiguïsation : si une commune est ambiguë — plusieurs résultats pour un nom (souvent dans des départements différents, ex. Bailleul dans le Nord, l’Orne et la Somme), ou code postal couvrant plusieurs communes — NE PAS deviner ni choisir au hasard. Présenter à l’utilisateur les communes candidates (nom + code postal + département) et lui demander de choisir avant de continuer. En cas d’échec de résolution, les outils renvoient un champ "options" avec les candidats à proposer. Ne jamais laisser l’utilisateur sans réponse. Substances : si plusieurs substances correspondent à un nom, la réponse contient "options" (CAS + nom) : présenter ces options à l’utilisateur au lieu d’en choisir une. Le numéro CAS est l’identifiant le plus fiable ; les fiches commune et département le donnent pour chaque substance. Identifiants de commune : préférer le code INSEE (renvoyé par search_communes) ou le slug. Un code postal peut couvrir plusieurs communes ou coïncider avec le code INSEE d’une autre commune.

Tools

9 advertised

search_communes — Rechercher des communes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Recherche de communes françaises par nom ou code postal (préfixe, ≥2 caractères). Renvoie nom, code INSEE, code postal et slug. Un même nom existe souvent dans plusieurs départements : la réponse liste alors jusqu’à limit communes candidates (5 par défaut, 20 au plus). Source : Mitoyens (mitoyens.fr) — Licence Ouverte 2.0 (Etalab), réutilisation libre avec mention de la source. Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

search_communes input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "Nombre de résultats (défaut 5)."
    },
    "query": {
      "type": "string",
      "minLength": 2,
      "description": "Nom de commune ou code postal (préfixe)."
    }
  }
}
search_communes output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "query",
    "count",
    "results",
    "attribution"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991
    },
    "query": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "insee",
          "name",
          "postal",
          "slug"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "insee": {
            "type": "string"
          },
          "postal": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "attribution": {
      "type": "object",
      "required": [
        "source",
        "license",
        "licenseUrl",
        "methodology",
        "datasetVersion",
        "dataFreshness"
      ],
      "properties": {
        "source": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "licenseUrl": {
          "type": "string"
        },
        "methodology": {
          "type": "string"
        },
        "dataFreshness": {
          "type": "string"
        },
        "datasetVersion": {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
search_communes annotations
{
  "title": "Rechercher des communes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_commune_exposure — Fiche d’exposition d’une commune
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fiche d’exposition d’une commune : indice combiné Rigal & Perrot (air + eaux de surface + intensité de traitement estimée à partir des ventes), parcelles agricoles dans 1 km, écoles proches, achats BNVD du code postal et profil chimique. Identifiant attendu : un seul parmi insee, code_postal ou slug. Un code postal partagé par plusieurs communes renvoie un champ "options" (communes candidates). Source : Mitoyens (mitoyens.fr) — licence CC BY-NC 4.0 (usage non commercial). Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

get_commune_exposure input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Slug de page (ex. bordeaux-33000)."
    },
    "insee": {
      "type": "string",
      "description": "Code INSEE (5 caractères)."
    },
    "code_postal": {
      "type": "string",
      "description": "Code postal (5 chiffres)."
    }
  }
}
get_commune_exposure annotations
{
  "title": "Fiche d’exposition d’une commune",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
rank_communes — Classer les communes par exposition
Advertised by the server during the last successful anonymous check.
Advertised read-only

Classement paramétrique des communes par exposition. Paramètres : département, seuil de population, tri (indice combiné, percentile, population), sens (order : desc par défaut, valeurs les plus hautes en premier ; asc pour l’inverse, donc les communes les moins exposées avec le tri par indice ou percentile) et taille du top. Peut renvoyer plusieurs communes d’un même département. Source : Mitoyens (mitoyens.fr) — Licence Ouverte 2.0 (Etalab), réutilisation libre avec mention de la source. Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

rank_communes input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "dept": {
      "type": "string",
      "description": "Code département métropolitain (ex. 33)."
    },
    "sort": {
      "enum": [
        "index",
        "percentile",
        "population"
      ],
      "type": "string",
      "description": "Critère de tri (défaut : indice d’exposition combiné)."
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Taille du top (défaut 10)."
    },
    "order": {
      "enum": [
        "asc",
        "desc"
      ],
      "type": "string",
      "description": "Sens du tri : desc = valeurs les plus hautes en premier (défaut, les plus exposées), asc = les plus basses en premier (les moins exposées ; les moins peuplées avec sort=population)."
    },
    "min_population": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Seuil de population."
    }
  }
}
rank_communes output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "dept",
    "sort",
    "order",
    "minPopulation",
    "count",
    "communes",
    "attribution"
  ],
  "properties": {
    "dept": {
      "type": [
        "string",
        "null"
      ]
    },
    "sort": {
      "enum": [
        "index",
        "percentile",
        "population"
      ],
      "type": "string"
    },
    "count": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991
    },
    "order": {
      "enum": [
        "asc",
        "desc"
      ],
      "type": "string"
    },
    "communes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "rank",
          "insee",
          "name",
          "postal",
          "dept",
          "slug",
          "url",
          "exposureIndex",
          "exposurePercentile",
          "airIndex",
          "airPercentile",
          "population"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "dept": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "rank": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "slug": {
            "type": "string"
          },
          "insee": {
            "type": "string"
          },
          "postal": {
            "type": "string"
          },
          "airIndex": {
            "type": "number"
          },
          "population": {
            "type": "number"
          },
          "airPercentile": {
            "type": "number"
          },
          "exposureIndex": {
            "type": "number"
          },
          "exposurePercentile": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "attribution": {
      "type": "object",
      "required": [
        "source",
        "license",
        "licenseUrl",
        "methodology",
        "datasetVersion",
        "dataFreshness"
      ],
      "properties": {
        "source": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "licenseUrl": {
          "type": "string"
        },
        "methodology": {
          "type": "string"
        },
        "dataFreshness": {
          "type": "string"
        },
        "datasetVersion": {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    },
    "minPopulation": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991
    }
  },
  "additionalProperties": false
}
rank_communes annotations
{
  "title": "Classer les communes par exposition",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
compare_communes — Comparer plusieurs communes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Tableau comparatif aligné de 2 à 5 communes sur les mêmes indicateurs (exposition, parcelles, bio, écoles, achats BNVD). Codes = INSEE ou slug. Une ligne dont le code est ambigu ou introuvable contient un champ "options" (communes candidates avec leur département) à la place des indicateurs. Source : Mitoyens (mitoyens.fr) — licence CC BY-NC 4.0 (usage non commercial). Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

compare_communes input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "codes"
  ],
  "properties": {
    "codes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "minItems": 2,
      "description": "2 à 5 codes INSEE ou slugs de communes."
    }
  }
}
compare_communes annotations
{
  "title": "Comparer plusieurs communes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
department_profile — Profil d’un département
Advertised by the server during the last successful anonymous check.
Advertised read-only

Profil départemental : indice d’exposition, tonnages BNVD (CMR, herbicides, fongicides, insecticides), et profil de traitement par culture (IFT, fonction dominante, substances). Source : Mitoyens (mitoyens.fr) — licence CC BY-NC 4.0 (usage non commercial). Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

department_profile input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "dept"
  ],
  "properties": {
    "dept": {
      "type": "string",
      "description": "Code département métropolitain (ex. 33)."
    }
  }
}
department_profile annotations
{
  "title": "Profil d’un département",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_substance — Fiche d’une substance ou d’un métabolite
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fiche d’une substance active phytosanitaire ou d’un métabolite : toxicité (humain ADI/ARfD, abeilles, oiseaux, mammifères, vie du sol), perturbateur endocrinien (EFSA, Règlement UE 2018/605), retrait ou non-renouvellement européen daté, statut dans la base européenne des substances actives (SANTE, tous les enregistrements du CAS, après arbitrage des CAS partagés) et molécules mères d’un métabolite. L’absence de retrait ne signifie pas que la substance est approuvée. Identifiant : numéro CAS (le plus sûr) ou nom (nom EFSA, libellé français de la BNVD, libellé du contrôle sanitaire de l’eau ou nom SANTE). Un nom partagé par plusieurs substances (ex. « cuivre ») renvoie un champ "options" (CAS + nom). Source : Mitoyens (mitoyens.fr) — données de tiers soumises aux conditions de leurs producteurs (EFSA OpenFoodTox : CC BY-ND 4.0, Commission européenne). Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

get_substance input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "cas": {
      "type": "string",
      "description": "Numéro CAS de la substance (ex. 1071-83-6). Identifiant préféré."
    },
    "name": {
      "type": "string",
      "description": "Nom de la substance (repli si le CAS est inconnu)."
    }
  }
}
get_substance annotations
{
  "title": "Fiche d’une substance ou d’un métabolite",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_school_proximity — Proximité écoles ↔ champs d’une commune
Advertised by the server during the last successful anonymous check.
Advertised read-only

Détail de la proximité écoles ↔ parcelles agricoles d’une commune : pour chaque école, distance, direction et culture du champ le plus proche (jusqu’à 5 champs), nombre de parcelles dans 500 m, surface, parcelles déclarées bio au RPG et cultures dominantes (avec libellé lisible). Filtrable par nom d’école via le paramètre school. Identifiant attendu : un seul parmi insee, code_postal ou slug. Un code postal partagé par plusieurs communes renvoie un champ "options" (communes candidates). Source : Mitoyens (mitoyens.fr) — licence CC BY-NC 4.0 (usage non commercial). Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

get_school_proximity input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Slug de page (ex. bordeaux-33000)."
    },
    "insee": {
      "type": "string",
      "description": "Code INSEE (5 caractères)."
    },
    "school": {
      "type": "string",
      "description": "Filtre par nom d’école (sous-chaîne, accents ignorés)."
    },
    "code_postal": {
      "type": "string",
      "description": "Code postal (5 chiffres)."
    }
  }
}
get_school_proximity annotations
{
  "title": "Proximité écoles ↔ champs d’une commune",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_tap_water — Pesticides dans l’eau du robinet d’une commune
Advertised by the server during the last successful anonymous check.
Advertised read-only

Résultats du contrôle sanitaire de l’eau distribuée (SISE-Eaux) pour les pesticides et leurs métabolites dans une commune : état global (pas de données, analysé sans détection, détection sans dépassement relevé, dépassement), compteurs de résultats d’analyse, réseaux de production, substances détectées avec leur pic annuel qualifié par rapport à sa limite de qualité, molécules mères des métabolites et lien vers la fiche. Eau du robinet après traitement : ce n’est pas une mesure de l’exposition individuelle. Identifiant attendu : un seul parmi insee, code_postal ou slug. Un code postal partagé par plusieurs communes renvoie un champ "options" (communes candidates). Source : Mitoyens (mitoyens.fr) — Licence Ouverte 2.0 (Etalab), réutilisation libre avec mention de la source. Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

get_tap_water input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Slug de page (ex. bordeaux-33000)."
    },
    "insee": {
      "type": "string",
      "description": "Code INSEE (5 caractères, ex. 2A004)."
    },
    "code_postal": {
      "type": "string",
      "description": "Code postal (5 chiffres)."
    }
  }
}
get_tap_water annotations
{
  "title": "Pesticides dans l’eau du robinet d’une commune",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
show_commune_map — Carte interactive d’une commune
Advertised by the server during the last successful anonymous check.
Advertised read-only

Carte interactive des parcelles agricoles dans 1 km autour d’une commune (halo 1 km, parcelles, bio). Rendue nativement dans les clients compatibles MCP Apps ; ailleurs, la réponse contient les données et le lien de la carte. Identifiant : code INSEE, slug ou code postal. Un code à 5 chiffres est résolu d’abord comme INSEE, et comme code postal seulement s’il n’est l’INSEE d’aucune commune : un code postal est souvent ambigu (plusieurs communes) ou coïncide avec l’INSEE d’une autre commune (ex. 59175 = CP de Templemars mais INSEE de Dimont). Un code postal partagé renvoie un champ "options". Source : Mitoyens (mitoyens.fr) — Licence Ouverte 2.0 (Etalab), réutilisation libre avec mention de la source. Parcelles RPG 2025 · Données BNVD 2024 arrêtées au 31 décembre 2024 · indice Rigal & Perrot, édition 2025 — données 2013-2022 · eau du robinet SISE-Eaux 2025.

show_commune_map input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1,
      "description": "Identifiant de commune, par préférence : code INSEE (5 caractères, ex. 59585 ou 2A004 en Corse) ou slug (ex. templemars-59175) ; code postal en dernier recours. Un code à 5 chiffres est résolu comme INSEE en priorité."
    }
  }
}
show_commune_map annotations
{
  "title": "Carte interactive d’une commune",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

Carte interactive d’une commune

Advertised by the server during the last successful anonymous check.

Carte MapLibre des parcelles agricoles dans 1 km autour d’une commune (Mitoyens).

Carte interactive d’une commune URI
ui://mitoyens/commune-map.html

MIME type: text/html;profile=mcp-app

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1489 ms
95th percentile latency
1489 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1489 ms · metadata changed · 9 tool(s), 1 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mitoyens-mcp https://mitoyens.fr/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mitoyens-mcp --url https://mitoyens.fr/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mitoyens-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mitoyens-mcp": {
      "url": "https://mitoyens.fr/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mitoyens-mcp": {
      "type": "streamableHttp",
      "url": "https://mitoyens.fr/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mitoyens-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "mitoyens-mcp": {
      "type": "http",
      "url": "https://mitoyens.fr/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mitoyens-mcp https://mitoyens.fr/api/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "mitoyens-mcp": {
      "url": "https://mitoyens.fr/api/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mitoyens-mcp": {
      "serverUrl": "https://mitoyens.fr/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Mitoyens MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Mitoyens MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing