Planning Train Journeys in Belgium Using Natural Language
What if you could plan your train journeys in Belgium using natural language?
You're going on a customer visit tomorrow and you need to check the trains, look up the location, send them an e-mail... That's multiple tools you need to interact with, copy or remember information, etc.
What if you could just do this all from one location?
Let's take ourselves into the imaginary story of account manager Ms. Henrard who has planned a customer visit tomorrow at Flemish Textiles Group. Before we start, we connected the following tools to our AI client:
- Server for getting realtime Belgian rail times
- Our CRM with client and order information
- The world wide web (standard tool)
This list could be much longer, but for the sake of simplicity we constrained ourselves to these. For this we use MCP-Servers (Model Context Protocol).
The Conversation
Finding trains and customer details
We start with a simple question: we're going to visit our client and need to find some trains. The AI is rather conservative in timing, but that's not a big issue as we can ask follow-up questions.
You can also see the AI thinking ahead and already fetching the details of this specific customer from the CRM. Although it's called "Flemish Textiles Group", it correctly finds the one closest.

Getting later options
As the initial suggestions were a bit early, we ask a follow-up question to get some later trains.

Drafting a personal email
You could stop here as you've found your train, but let's use this information to take us further. Since it also knows the customer details from the CRM, we can create a very personal e-mail. You could follow-up and ask for edits if you'd like.
If we had connected an email-tool we would be able to actually send the e-mail directly. For demonstration purposes we didn't.

Finding nearby customers
As with every client visit, it could be interesting to visit some clients in the neighborhood. Let's check on that. Here we use the combined knowledge of the AI, enriched with information from the CRM.
Unfortunately there are no other customer locations in Ghent, so that search stops here. You could ask the LLM to check on next trains, taking it further if you'd like.

Researching the customer
And lastly, let's check in on some news about Flemish Textiles Group as it's important to arrive prepared. Here we use the web-tool functionality to search for interesting articles.
As expected, not much to find about our company as it is imaginary, but that doesn't stop the AI from finding some general industry news to open our conversation. You could click on the links to get more info or ask the AI to fetch and summarize them.

The Possibilities
As you can see the possibilities are endless, and the greatest thing of all is that you are not bound to one system or AI like many other AI's in the wild (CoPilot, ...). The tools act as the glue between your existing systems and the outside world.
Technical Overview
Below you can find a high-level diagram explaining what happens in the background. From our local MCP-client we call tools, which can (or cannot) call external APIs, etc.
For the demo above we use the Claude Desktop Client, but you can also use open-source models, your own API-key, etc. with for example jan.ai.

CRM Data
A database-extract of our CRM showing what gets sent back to the AI. You can choose what information to expose with a specific tool, having clear control over what people can see and use.

Try It Yourself
You can set up the same tooling using:
- Claude Desktop Client
- MCP Server for Belgian Rail
- MCP Server to connect to a CRM (custom built)
Security Note
You can also opt to use a local model so that no customer data leaves your network/computer ever.
Beware of using online MCP-servers and always check them before installing/using. Although the technology is very promising, the security landscape is still maturing.
