Business context
The client sells a web platform for urban planning built on detailed 3D city models. Every district, lot and building carries data such as land use, energy, carbon and floor area. The value of that data depends on how many people in a customer's team can get answers from it.
The challenge
Getting answers meant clicking through filters and reports, which was slow for anyone who was not a power user. An AI layer had to turn plain questions into correct queries on real project data. It also had to respect each user's permissions, never change data, and work with the AI provider each organisation chooses.
Our solution
We added an AI assistant to the existing platform, built with LangGraph and LangChain and connected through MCP. Users ask a question in plain English. The assistant finds the answer through the platform's own data services, shows the matching buildings and charts, and can select and zoom to them on the 3D map. It acts with the user's own permissions and can only read data.
- Plain-English search that turns a sentence into a database query
- In-app chat with clickable results and charts
- Map control from the chat, such as selecting, zooming and toggling layers
- Read-only data access, permission checks and rate limiting
- Support for Gemini, OpenAI and Anthropic models
Business impact
In live testing on real project data, the assistant answered 19 questions. Every figure was checked by hand against the platform's reports dashboard, and all of them matched.
- Planners who are not power users get answers from city data without learning filters and reports
- Answers appear on the 3D map, so users see which buildings a figure refers to
- Read-only access and permission checks let customers turn the assistant on without risk to their data
- Each organisation keeps its choice of AI provider




