Skip to main content
Glama
Hug0x0

mcp-french-transport-data

by Hug0x0

mcp-french-transport-data

MCP server for transport.data.gouv.fr: datasets, GTFS resources, regions, networks, and data-quality discovery.

Tools

Run the MCP and call french_transport_data_get_sources first to inspect source coverage. This server also exposes domain-specific tools for the topic described above.

  • french_transport_data_search_datasets

  • french_transport_data_get_dataset

  • french_transport_data_list_dataset_resources

  • french_transport_data_search_data_gouv

Related MCP server: data-sncf

Install

npm install
npm run build
npm test
npm run dev

Claude Desktop

{
  "mcpServers": {
    "french-transport-data": {
      "command": "npx",
      "args": ["mcp-french-transport-data"]
    }
  }
}

Sources

Publishing

See docs/publishing.md.

Glama / Docker

The repo includes Dockerfile and glama.json.

Build steps:

["npm install", "npm run build"]

CMD arguments:

["node", "dist/index.js"]

Safety

This MCP helps agents discover and summarize public sources. It is not an official authority. Verify decisions against the competent public service or original data producer.

License

MIT

Available Tools

5 tools
french_transport_data_fetch_source_excerptA

Fetch a short text excerpt from a curated source by index or title keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_charsNo
source_keyYesSource index, title keyword, or URL fragment.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It states the core behavior (fetching a short excerpt) but does not disclose error behavior, truncation details, or what happens when source_key is invalid. This is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler, front-loading the verb and resource. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter fetch tool, the description covers the essential operation and selection method. However, it omits how to discover valid source_key values and what happens on invalid input, and there is no output schema to clarify the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents source_key but not max_chars (50% coverage). The description adds context by saying selection is by index or title keyword, but it does not explain that max_chars controls excerpt length. The schema's default/min/max partially compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and a clear resource ('short text excerpt from a curated source'), and specifies the selection method ('by index or title keyword'). This distinguishes it from sibling tools that list sources or search datasets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to choose this tool over siblings such as french_transport_data_get_sources or french_transport_data_search_datasets. The description implies usage for excerpt retrieval but does not state prerequisites or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

french_transport_data_get_datasetA

Fetch one transport.data.gouv.fr dataset by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDataset id from french_transport_data_search_datasets.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. 'Fetch' correctly signals a read-only, single-resource retrieval, but it does not disclose failure behavior, response shape, or any service-specific caveats. It is minimally sufficient for a simple GET-style tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One active sentence with no filler. The verb, resource, and selection key are all front-loaded, making the tool's purpose immediately understandable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter and a straightforward retrieval purpose, the description plus schema is sufficient for a basic call. It could mention expected output or not-found behavior, but complexity is low and no output schema was provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter with 100% coverage, so the baseline applies. The tool description adds no parameter details beyond what the schema provides; the meaningful source-of-id instruction lives in the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description names the exact resource (dataset) and retrieval action, and specifies selection by id. It clearly distinguishes from siblings: search_datasets returns lists, while this retrieves a single dataset; get_sources and fetch_source_excerpt serve different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly name alternatives, but the parameter schema states the id must come from french_transport_data_search_datasets, establishing the intended workflow. This gives clear context even though it lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

french_transport_data_get_sourcesB

List curated sources used by this MCP.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'List curated sources' – implying a read operation, but gives no details on return format, size, or whether it returns identifiers or full metadata. This is insufficient for an agent to know what to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It immediately states the action and the object, so it earns a perfect conciseness score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given its simplicity (no inputs, no output schema), the description is nearly complete. However, it lacks context on what 'curated sources' are, and doesn't mention any use cases or limitations. An agent might call it without understanding the value of the returned data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline score of 4 applies. The description doesn't need to explain parameters, and it doesn't.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List curated sources'. It is distinct from sibling tools that fetch excerpts, search datasets, or retrieve specific datasets. However, it doesn't clarify what 'sources' means (e.g., data provider names, file names), leaving slight ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. It doesn't mention that other tools handle searches or excerpts, or that this tool provides an overview of available data. The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

french_transport_data_search_data_gouvA

Search data.gouv.fr for mobility datasets such as GTFS, NeTEx, SIRI, stops, and real-time feeds.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoGTFS transport
page_sizeNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the behavioral disclosure burden. It conveys a read-only search over an external source and scopes the content to mobility datasets, which is useful. However, it does not describe the return format, pagination behavior, or any network/auth considerations, so the behavioral profile is only partially disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence states the action, target, and relevant examples with no filler. It is appropriately sized for a simple two-parameter search tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with two obvious parameters, the description is minimally adequate for an agent to invoke it correctly. The main gaps are the lack of detail about the output shape and how this tool relates to the sibling search_datasets tool, but neither is catastrophic given the simplicity of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description does not explicitly explain page_size or map query beyond the example dataset types. That said, the parameter names, defaults, and constraints make both query and page_size reasonably self-evident, and the examples give concrete meaning to the query parameter. This partially compensates for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific action ('Search'), a target resource ('data.gouv.fr'), and a domain ('mobility datasets') with concrete examples such as GTFS, NeTEx, SIRI, stops, and real-time feeds. It does not, however, differentiate itself from the sibling search_datasets tool, leaving some ambiguity about which search tool to prefer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to call this tool: when searching for French mobility/transport datasets on data.gouv.fr. It does not explicitly mention alternatives or when not to use it, but it provides enough context for an agent to infer the intended use case and no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

french_transport_data_search_datasetsC

Search transport.data.gouv.fr datasets by text using the public API.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNoText filter applied locally to dataset title/slug after fetching the API list.

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to rely on, the description carries full responsibility for behavioral transparency. It only mentions 'using the public API' without detailing side effects, rate limits, authentication requirements, or the nature of the response, leaving significant behavioral aspects undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no extraneous details. It is appropriately sized for the tool's simple purpose and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description is too sparse. It does not clarify what the tool returns (e.g., dataset metadata, pagination details), nor does it provide any context about the underlying process (e.g., that it fetches a list and then filters locally). This leaves important gaps for an agent deciding to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool description adds no information about its parameters beyond the schema. Although the schema includes a description for 'query', the overall schema coverage is only 50% (limit lacks any description), and the tool description does not compensate for the missing parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'search' and the specific resource 'transport.data.gouv.fr datasets', making the tool's purpose unambiguous. However, it does not explicitly distinguish itself from sibling tools such as 'french_transport_data_get_dataset' or 'french_transport_data_search_data_gouv', so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It lacks any mention of scenarios where this search is preferred or where a sibling tool would be more appropriate, leaving the agent without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedfrench_transport_data_fetch_source_excerpt
    • First observedfrench_transport_data_get_dataset
    • First observedfrench_transport_data_get_sources
    • First observedfrench_transport_data_search_data_gouv
    • First observedfrench_transport_data_search_datasets

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation4/5

Tools are mostly distinct, targeting either curated sources or transport.data.gouv datasets. However, 'search_datasets' and 'search_data_gouv' both perform dataset searches with overlapping scope, which could cause misselection.

Naming Consistency5/5

All tool names follow the consistent 'french_transport_data_<verb>_<object>' pattern using snake_case, making the API predictable and easy to navigate.

Tool Count5/5

Five tools is a well-scoped size for a transport data retrieval server, each covering a distinct operation without feeling sparse or bloated.

Completeness4/5

The set covers browsing curated sources, fetching excerpts, searching and retrieving datasets from transport.data.gouv.fr, and a broader mobility search. Minor gaps exist, such as lack of direct dataset download or listing all datasets, but core workflows are supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying SNCF Open Data (train schedules, stations, punctuality, etc.) through natural language or direct tool calls, with dataset search, metadata retrieval, and ODSQL querying.
    15
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables discovery and inspection of French public open data on data.gouv.fr, including datasets, resources, organizations, and dataservices via natural language.
    9
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables discovery and navigation of French overseas territories public data across national and local open-data portals, with tools to search datasets, list territories and communes, and fetch source excerpts via official French government APIs.
    10
    MIT