Skip to main content
Glama
gghez

mcp-gouv-fr

by gghez

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_GOUV_APISNoComma-separated list of API ids to load (datagouv, geo, insee, radiofrance). Default: all.
MCP_GOUV_HOSTNoHost for streamable HTTP transport (default: 127.0.0.1).
MCP_GOUV_PORTNoPort for streamable HTTP transport (default: 8765).
MCP_GOUV_HTTP_PATHNoPath for streamable HTTP transport (default: /mcp).
MCP_GOUV_LOG_LEVELNoLogging level (DEBUG, INFO, WARNING, ...). Default: INFO.
MCP_GOUV_TRANSPORTNoTransport type: stdio or streamable-http (default: stdio).
MCP_GOUV_USER_AGENTNoUser-Agent header for HTTP requests.
MCP_GOUV_GEO_API_BASENoBase URL for geo.api.gouv.fr (default: https://geo.api.gouv.fr).
MCP_GOUV_HTTP_TIMEOUTNoOutbound HTTP timeout in seconds (default: 30).
MCP_GOUV_INSEE_API_KEYNoRequired for INSEE Sirene tools (insee_*). Subscribe at https://portail-api.insee.fr/ and set this as the consumer key.
MCP_GOUV_DATAGOUV_API_BASENoBase URL for data.gouv.fr API (default: https://www.data.gouv.fr/api/1).
MCP_GOUV_INSEE_SIRENE_API_BASENoBase URL for INSEE Sirene API (default: https://api.insee.fr/api-sirene/3.11).
MCP_GOUV_RADIOFRANCE_API_TOKENNoRequired for radiofrance_graphql tool. Get your API token at https://developers.radiofrance.fr/
MCP_GOUV_RADIOFRANCE_GRAPHQL_URLNoGraphQL endpoint for Radio France (default: https://openapi.radiofrance.fr/v1/graphql).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
datagouv_search_datasetsA

Search datasets (title, description, organization).

Args: query: Free-text search query. page: Page number (1-based). page_size: Page size (keep reasonably small, e.g. ≤ 100).

datagouv_get_datasetA

Return dataset metadata and resources for one dataset.

Args: dataset_id: Dataset id or slug.

geo_search_communesA

Search communes by name, postal code, and/or parent department.

At least one of nom, code_postal, or code_departement must be non-empty so the query stays bounded (the upstream API can return very large slices without filters).

Args: nom: Substring or fuzzy name (e.g. Paris); optional if other filters are set. code_postal: Five-digit postal code; optional if other filters are set. code_departement: Department code (e.g. 75); optional if other filters are set. boost_population: When true, rank name search by population (upstream boost param). limit: Maximum number of results (keep small, e.g. ≤ 50).

geo_get_communeA

Return one commune by INSEE municipality code.

Args: code: INSEE code commune (5 characters for mainland; includes Corsica 2A/2B departments' communes with standard 5-digit codes).

geo_search_departementsA

List all departments or fuzzy-search them by name.

Args: nom: When set, filters departments by name; when omitted, returns the full list (subject to limit). limit: Cap on returned rows (default covers all mainland + overseas departments).

geo_get_departementA

Return one department by code, including its region when available.

Args: code: Official department code (e.g. 13, 75, 2A).

geo_search_regionsA

List all regions or fuzzy-search them by name.

Args: nom: When set, filters regions by name; when omitted, returns every region. limit: Cap on returned rows (France has fewer than 20 regions).

geo_get_regionA

Return one region by code.

Args: code: Official region code (e.g. 11 for Île-de-France).

insee_get_unite_legaleA

Return the legal unit (unité légale) for one 9-digit SIREN.

Use this to resolve a company identifier to its official INSEE record (status, denomination, activity codes, etc.). Requires a valid portal API key.

Args: siren: Nine-digit SIREN (spaces optional).

insee_get_etablissementA

Return the establishment (établissement) for one 14-digit SIRET.

Use this for a specific branch or address (SIRET includes the SIREN plus a NIC). Requires a valid portal API key.

Args: siret: Fourteen-digit SIRET (spaces optional).

radiofrance_graphqlA

Execute a GraphQL query or mutation against the Radio France Open API.

The upstream API is documented at https://developers.radiofrance.fr/ (programs, channels, podcasts). Use introspection or the hosted explorer (with your API token) to discover fields and types.

Args: query: GraphQL document (query or mutation). variables: Optional variables object; omit or pass empty dict when the query has none.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct resource and action: datasets, communes, departements, regions, legal units, establishments, and a generic GraphQL access point are all cleanly separated. Search vs. get operations are unambiguous within each domain, and no two tools appear to overlap in purpose.

Naming Consistency5/5

Tool names follow a consistent domain_verb_noun pattern: datagouv_search/get, geo_search/get, insee_get, and radiofrance_graphql. snake_case is used uniformly, and the verbs search/get clearly indicate whether a tool lists/filters or fetches a single entity.

Tool Count4/5

11 tools is a reasonable, well-scoped count for a public-data server covering datasets, administrative geography, and company records. The radiofrance_graphql tool is a broad catch-all that slightly expands the server's scope, but it is still a single coherent integration point.

Completeness4/5

The dataset and geography domains have solid search/get coverage for their core entities, and INSEE identifiers map directly to legal units and establishments. Missing search-by-name for INSEE and some administrative geography depth (e.g., arrondissements) are minor gaps for a read-only public-data server.

Maintenance

ActivityInactive
ResponsivenessNo issues