
NS Travel Information MCP Server

Transform your AI assistant into a Dutch railways expert! This MCP server connects Claude to real-time NS (Nederlandse Spoorwegen) travel information, making it your perfect companion for navigating the Netherlands by train.
Installation
You can install this server in three ways:
1. Using Claude Desktop with NPM Package
Update your Claude configuration file (~/Library/Application Support/Claude/claude_desktop_config.json):
{
  "mcpServers": {
    "ns-server": {
      "command": "npx",
      "args": [
        "-y",
        "ns-mcp-server"
      ],
      "env": {
        "NS_API_KEY": "your_api_key_here"
      }
    }
  }
}
You can get an API key from NS API Portal
2. Using Smithery
To install NS Travel Information Server automatically via Smithery:
npx -y @smithery/cli install ns-server --client claude
3. From Source
- Clone this repository
 
- Install dependencies:
npm install
 
- Copy the example environment file:
cp .env.example .env
 
- Add your NS API key to the 
.env file:
NS_API_KEY=your_api_key_here
 
Then update your Claude configuration file:
{
  "mcpServers": {
    "ns-server": {
      "command": "node",
      "args": [
        "/path/to/ns-server/build/index.js"
      ],
      "env": {
        "NS_API_KEY": "your_api_key_here"
      }
    }
  }
}
Make sure to:
- Replace 
/path/to/ns-server with the actual path to your installation 
- Add your NS API key in the 
env section. It can be obtained from here https://apiportal.ns.nl/product#product=NsApp 
After updating the configuration, restart Claude Desktop for the changes to take effect.
Real-World Use Cases
- "Is my usual 8:15 train from Almere to Amsterdam running on time?"
 
- "Are there any delays on the Rotterdam-Den Haag route today?"
 
- "What's the best alternative route to Utrecht if there's maintenance on the direct line?"
 
- "Which train should I take to arrive at my office in Amsterdam Zuid before 9 AM?"
 
- "Which route to Amsterdam has the fewest transfers with a stroller?"
 
- "What's the earliest train I can take to make my 10 AM meeting in The Hague?"
 
- "When's the last train back to Groningen after a night out in Amsterdam?"
 
- "Are there any weekend engineering works that might affect my Monday morning class?"
 
- "Are there OV-fiets bikes available at Utrecht Centraal for my afternoon meeting?"
 
- "Is Eindhoven Strijp-S station wheelchair accessible and what platforms does it have?"
 
- "What trains are arriving at Utrecht Centraal in the next hour?"
 
- "Has the train from Venlo to Schiphol Airport arrived on time?"
 
- "How much does a first-class ticket from Amsterdam to Rotterdam cost?"
 
- "What's the price for 2 adults and 1 child traveling to Den Haag?"
 
🔑 Environment Variables
| Variable | Description | 
|---|
| NS_API_KEY | Your NS API key (required) | 
🌟 Features
This MCP server provides comprehensive access to NS train information through the following endpoints:
Real-time Train Information
- Departures: Get real-time departure information including platform numbers, delays, and travel notes
 
- Arrivals: Access upcoming train arrivals with origin stations, platform changes, and status updates
 
- Journey Planning: Find optimal travel routes with transfers and real-time updates
 
- Service Updates: Check for disruptions, maintenance work, and engineering activities
 
Pricing Information
- Ticket Prices: Get accurate pricing for single and return journeys
 
- Travel Classes: Compare prices for first and second class travel
 
- Group Pricing: Calculate fares for adults and children
 
- Discount Options: Check joint journey discounts and special offers
 
- Validity Details: View ticket validity periods and travel conditions
 
Station Information
- Station Details: Access comprehensive station information including:
- Facilities and accessibility features
 
- Platform layouts and track information
 
- OV-fiets (bike rental) availability
 
- Location and approach details
 
 
Additional Features
- Multi-language Support: Information available in Dutch and English
 
- Flexible Queries: Search by station name, code, or UIC identifier
 
- Time Zones: Proper handling of time zones for international stations
 
- Status Updates: Track changes, delays, and cancellations in real-time
 
License
This project is licensed under the MIT License - see the LICENSE file for details