Sign inTry it

Let Claude plan an NS train trip in the Netherlands

To let Claude plan an NS train trip, install Wield and name two Dutch stations. Add a date and a time if you do not travel now. For example: "Plan an NS train from Amsterdam Centraal to Rotterdam Centraal on 26 November 2026 at 17:30, and show the fares." Claude runs the ns.nl/search-trains recipe in your own browser. It returns the trips with planned and live times, transfers, status, crowding and fares. No login is needed.

Updated

Live recipens.nl/search-trainsv1

NS (Nederlandse Spoorwegen) Plan a train trip in the Netherlands (NS)

Read-only, no loginPasses the daily check

Parameters (4)
datestringYYYY-MM-DD; leave out to travel now. NS plans only within the current timetable (the new one is published shortly before mid-December)
fromstringrequiredStation, e.g. 'Amsterdam Centraal', 'Utrecht', 'Schiphol Airport'. The first match of NS's station search is used
timestringDeparture time HH:MM, Dutch local time; used together with date
tostringrequiredStation, e.g. 'Rotterdam Centraal', 'Den Haag Centraal'
Use it with your agent

What you need

  • Claude Desktop, Claude Code, Cursor, Codex or another MCP client.
  • A Chromium browser (Chrome, Edge, Brave, Arc, Vivaldi, Opera) with the Wield extension.
  • wield-mcp. Run npx -y wield-mcp init, or use the one-click Claude Desktop bundle on wield.run/install.

For the full setup, follow the quick start.

Ask your agent

Give the departure station and the arrival station. Add a travel day and a departure time if the trip is not now. Claude calls find_recipe to find the recipe, then run with the parameters.

You: Plan an NS train from Amsterdam Centraal to Rotterdam Centraal on 26 November 2026 at 17:30, and show the fares.

You: Show the next NS trains from Utrecht to Schiphol Airport and flag any trip that is cancelled or disrupted.

Params: what to put where

ParamRequiredWhat to put in it
fromyesStation, such as Amsterdam Centraal, Utrecht or Schiphol Airport. The first match of NS's station search is used
toyesStation, such as Rotterdam Centraal or Den Haag Centraal
datenoTravel day as YYYY-MM-DD. Leave out to travel now
timenoDeparture time as HH:MM, Dutch local time. Default 08:00. Used together with date

What comes back

The result has from, to and a trips list. Each trip shows the planned departure and arrival, and the actual times when NS has them (departure_actual and arrival_actual). It also shows duration_min, transfers and status, which is normal, cancelled or disrupted.

Each trip also shows crowding, price_eur for second class, price_first_class_eur for first class and the fare used. The legs list has each leg's train, platform and crowding. The url opens the trip on ns.nl.

What leaves your computer

The recipe reads the planner page on www.ns.nl, then makes three requests to gateway.apiportal.ns.nl. These are the same requests the planner on ns.nl makes, and they go out from your browser. Nothing passes through wield.run. Wield logs each request on your computer, with method, host, path, status and timing, but never bodies or query values. Telemetry is off by default. Wield never reads, copies or sends your cookies or passwords.

A status check on 7 November 2026 from Amsterdam Centraal to Utrecht Centraal passed 6 of 6 checks, with three requests in about one second.

NS's terms, in plain words

We have not reviewed NS's terms for automated access yet. The recipe makes one person's search, with the same requests the planner makes. Do not run it in a loop to collect timetables or prices in bulk. Tickets are not part of the recipe. Buying stays on ns.nl.

This is not legal advice. Read NS's terms yourself before you automate anything else.

Limits

  • Read only. The recipe never sells tickets. Open the url on a trip to continue on ns.nl.
  • Current timetable only. Plans work only within the current timetable. The new one is published shortly before mid-December. Later dates return an error.
  • No arrive-by search. The recipe plans from a departure time.
  • Check the station match. The first match of NS's station search is used, so compare from and to with what you asked for.
  • Run limits apply. A run has at most 12 steps, 40 requests, 5 MB per response and 60 seconds.

FAQ

Does Claude need an NS account?

No. The recipe runs without a login.

Can Claude book the ticket?

No. Open the url on the trip you want and buy on ns.nl.

Why did my date return an error?

NS plans only within the current timetable. Dates after the December timetable change are not available yet.

Which AI apps work with it?

Any MCP client. npx -y wield-mcp init sets up Claude Desktop, Claude Code, Cursor and Codex. Other MCP clients work with the standard stdio config.