“Make Me a Map”: Building a GIS Agent with Agent Bricks, MCP, and Lakebase
Summary
- Traditional GIS software was designed for desktop specialists producing PDF reports, creating an expectation gap when users ask AI agents to answer spatial questions—common problems include hallucinated addresses, unpredictable outputs, and agents that spend excessive time making tool calls without delivering a working map.
- Felt built a GIS agent where users send a Slack message requesting a map, Agent Bricks orchestrates the workflow by querying Lakebase (a Postgres-compatible serverless spatial backend with PostGIS), connects to Felt's mapping platform via an MCP server, and posts back a fully functional collaborative map.
- Lakebase also serves as the CRM and transactional data backend for the agent's operational data, demonstrating how a single Postgres-compatible OLTP database on the Databricks Data and AI platform can support both spatial queries and real-time agent state management.
“Make Me a Map”: Building a GIS Agent with Agent Bricks, MCP, and Lakebase

Geospatial workflows are complex—querying spatial databases and generating visualizations requires specialized expertise. We built an AI agent that takes a Slack message and returns a fully functional map application. What started as an internal tool for Solution Architects—replacing hours of manual data prep—is now used by customers too. The architecture: Lakebase serves as the spatial backend (Postgres-compatible with PostGIS), while our MCP server exposes Felt's mapping capabilities to Agent Bricks. Users ask for a map in Slack, the agent queries Lakebase, connects to Felt, and posts back a working map. This talk covers: Lakebase as a geospatial engine—Postgres compatibility in a serverless lakehouse MCP tools for live connections—wiring Lakebase → Felt directly Agent Bricks orchestration—multi-step GIS workflows from Slack Attendees leave with a pattern for building agents that produce working applications, not just answers.
Talk By: Sam Hashemi, CEO, Felt ;
Chapters
00:00Introduction: Maps as an AI Agent Use Case00:48Why GIS Has Been Gatekeeper Software — Until Now02:43The New Mapmaking Model: Natural Language to Map03:20Why Felt Chose Databricks and Unity Catalog as Source of Truth04:36Agent Loop: Slack Message → MCP → Catalog → Map05:15Demo: Catalog Search and Data Discovery via Agent07:11Demo: Querying Raster Fire Risk Data07:48Demo: High Fire Risk Map Rendered by the Agent08:27Demo: Agent Inspects Fire Stations via Tool Calls09:41Real-Time Collaboration: Multiple Users on the Same Map10:19Lakebase for CRM and Transactional Agent Data10:56Felt MCP Server + Databricks: The Integration Architecture12:50Three Takeaways for Building Production GIS Agents
FAQs
What problem does the GIS agent solve for users working with spatial data?
When users ask AI agents to make a map or answer a spatial question, current AI tools often hallucinate addresses, create unpredictable outputs, or fail entirely—requiring users to fall back to emailing or Slacking a specialized GIS team. This video describes how Felt and Databricks built an agent that closes this gap, allowing anyone to get a working map from a Slack message without needing GIS expertise.
How does the agent architecture work end to end?
A user sends a Slack message requesting a map; Agent Bricks orchestrates the workflow, querying Lakebase (Postgres-compatible with PostGIS) for spatial data and using Felt's MCP server to connect to Felt's mapping platform. The agent performs tool calls to inspect data, query fire risk rasters, and discover catalog assets, then posts a fully functional collaborative map back to the user in Slack.
What is Lakebase and why did Felt choose it as the spatial backend?
Lakebase is Databricks' serverless Postgres-compatible OLTP database that supports PostGIS for spatial queries, making it suitable as a geospatial engine within the lakehouse. Felt uses it as the source of truth for spatial data and also for CRM and transactional agent data, demonstrating that a single Lakebase instance can serve both spatial workloads and operational agent state.
Why did Felt choose Databricks and Unity Catalog as the source of truth for their mapping agent?
Felt needed a governed, discoverable data layer that the agent could search and query reliably—requirements that Unity Catalog on the Databricks Data and AI platform satisfies through catalog search and data discovery tooling. This video demonstrates the agent using catalog search to discover fire station and fire risk datasets before querying them to generate the map.
Full transcript
[00:09] Hi guys. Can you guys hear me? Are the microphones coming through? Okay, thumbs up. Hello and welcome to Make Me a Map. I see a few folks are still putting on their headsets, so I'll give everyone a minute. Oh yeah, it's got live dialogue. I love it. So yeah, put on your headsets
[00:21] if you haven't already. And then let's do one more thumbs up if you can hear me. Okay, beautiful. Welcome to Make Me a Map. That's the name of the session. and we're going to make a map. Uh, I don't know about you, but if you've gone to Claude or ChatgBT or any of these AI
[00:35] agents and asked me to make a map, sometimes it does some funny things. Sometimes it tries to render it from an SVG, tries to literally create a map from scratch. Sometimes it tries to boot up a whole GIS system from scratch and
[00:48] spend 30 minutes making tool call after tool call after tool call. Sometimes it writes Python scripts and goes a little bit off the rails. It's never a great experience. And we're trying to help the world catch
[01:00] up with this. I think if if you're like me, 90% of your day is spent inside these AI chat bots now, talking to them, having confidence in them. But as soon as you need to make a map, as soon as you're asking a spatial question, that
[01:12] confidence is lost. You turn it back over to a team, the GIS team, an incredible team that is held back by some of the software that doesn't let them integrate into the same process. You have to send them an email. You send
[01:25] them a Slack message. Maybe you'll hear back next week. you don't have the same confidence around answering spatial questions as you as you do doing every other thing inside these AI tools. Um, so there's this real expectation
[01:37] gap. That's what we've experienced. We talked to 500 1,000 GIS customers. They often see hallucinated responses where, you know, it'll make up addresses or it'll guess where those addresses belong. It will create a very
[01:49] unpredictable output or like I mentioned, they'll say, I just can't do that. There's this real gap, this ability in doing spatial mapping software. And the reason this gap exists is that most GIS software was not really built for this world. It was built in
[02:02] the 60s. And it was designed to be amazing desktop software for specialists to use to deliver in PDF reports. That's been the design prompt, the design goal, the constraint for a lot of this software for literally 50 years. And so
[02:16] when we started felt, we wanted to think about it a little bit differently. We wanted to make sure it's cloudnative by default. That's where you start. You start inside a browser. Natural language is the starting point when you boot up felt today. That is the first thing you'll see. It builds on top of data
[02:30] bricks and any other cloud system. We believe that's the source of truth has moved into datab bricks, snowflake, redshift, these other cloud warehouses. This is where your truth lives and any modern GIS should not try to be a secondary source of truth. It should
[02:43] work with your source of truth. And then importantly, we believe that mapmaking has changed. GIS folks, your job now is to enable your whole organization to think spatially. How do you empower an
[02:55] organization to think spatially? And so, um, we want folks to come into software and be able to ask, "Show me flood risk in this area. Highlight sites with high foot traffic. Make me a map of
[03:07] Arizona. Show me customers within a quarter mile." These types of things should be easy and powerful. So, we built it. I'm going to show you it today. It's an agentic AI native GIS mapping platform. Um, it's really good.
[03:20] This is really important. It's really good whether you're an AI or you're a human. We believe that being able to step between worlds is important. The AI will get you 80% of the way there, but you'll need to come in and add that human touch to refine it. And so, the UI
[03:33] is just as accessible as the AI powers we expose. Uh, all of this is very native to data bricks. I'm going to show you that in a second. we built on top of data bricks to empower this with data bricks SQL lakebased notebooks apps
[03:46] unity catalog the whole set of things is fully available to you inside felt and we're seeing a lot of customers use it this is fastnet they do EV chargers they're able to analyze very quickly the
[03:58] optimal EV charging locations add new ones see which ones are performing see which ones need more added to it uh I'm going to show you how this works in a live demo so we'll hope the demo gods serve us Well,
[04:11] I'm here inside Slack. I have my FELGIS agent booted up and I'm going to ask my Felgis agent to make me a map of my GIS infrastructure. Feltgis agent
[04:24] and in a second here I'm going to show you how I built all of this on top of data bricks. But you can see it's already off to the races. I'll just open it up here. Felt Maps agent on agent bricks is on it. It's starting the very
[04:36] first process of creating a map, sourcing the data, pulling it in. The first tool prompt is already in diamond create map. Arizona energy infrastructure at wildfire risk. It is using SQL to start to query this data
[04:48] and pull it in. It gives me a link so I can click through and see what's going on here. And over the course of this demo, oh, the demo gods are not kind. We'll try one more time. We don't have the right permissions to
[05:01] see it. Okay, we'll come back to that. I'm confident it will get there in a second. Um, but what I wanted to show you is behind the scenes uh how this is all working. So, I'm going to switch to uh my uh databicks instance. And all you have
[05:15] to do here is come to the catalog and search for felt. Um, and you oops, sorry, let me go to the marketplace and search for felt. Come on, felt.
[05:27] So, here is felt. Uh, you click it, you install it, and then that's really the only step. And once you're here, you can come in and see what it's doing. So, we have this felt maps AI agent. I'm going to click in and see it. Uh, I can click
[05:41] to see what it is and tell me what capabilities it has. Part of what makes FEL powerful is that we have put in 30 plus different capabilities that are very GIS specific. Things that a AI could not do by
[05:54] default, things that data bricks could not do by default. These are things that enhance data bricks, enhance AI to make it a powerful GIS, a full GIS stack. Hopefully, you can read that. Hopefully, it's not too small. But it's able to
[06:06] create maps using spatial analysis. It pulls in spatial operations. It can style them. It knows how to do spatial specific queries. And if I want, I can click this experiments button and actually see all of the traces of what's going on. I got to
[06:19] click that traces button here. So, let me click that traces button. And so yeah, you can here live see every query happening against that datab bricks agent and I can click through and actually see how it's all being called.
[06:32] So let me flip back here and we'll try clicking this link one more time with fingers crossed. I can't see it but that's okay. I have one booted up here already so we can take a look. So this was made entirely
[06:46] by the agent. It was able to source both public data and data from my data bricks and pull it in. You can see it's actually highlighted fire risk across these infrastructure areas across these transmission lines. And the way this
[06:59] works, I'll click edit map here is I can come in and say, "Hey, I want to connect a source." So I'll see all sources. I'll connect my data bricks. I authenticate on this side as well. I've authenticated
[07:11] ahead of time. And I can see not only all my tables, but also raster data. Many of you might be working with raster data that you're bringing into your lake base. So you can come in here and pull in your uh raster data and layer that
[07:24] on. So again, powerful GIS platform that lets you do both vector and data. You can see there on the top left, it's pulling in. This is live streaming from that uh data bricks instance. So if it updates on that side, it'll also update
[07:36] here inside the platform. Um it's a really powerful GIS. So I can click this and actually pull out information from this raster. I'll do a color range that give it a color uh that suits me that
[07:48] tells the story that I want to tell this one here. And suddenly I can see this high fire risk area where fires have happened. And of course I can start to think mentally about where most of the risks sits. Um the AI agent is not only
[08:02] built into data bricks into uh Slack, but it's also built into the product. So, I'm just going to come here and say which transmission lines. Actually, let's say how many
[08:15] substations were impacted and it's able to query the same spatial data, do it in a spatial format. You can see here on the top left, it's thinking,
[08:27] inspecting fire stations. I'll open up the tool call so you can actually see everything that's doing. It's actually writing a data bricks um query against it. And let me actually show you this. I can go here and see fire exposures, see
[08:40] the data, and see the SQL query. Always the demo gods. They're never kind. But you should be able to click through. We'll try one more time. We'll see if it's able to show me. There we go. That time it worked. Um, I'm able to see the
[08:53] actual query you constructed, verify it, make sure that it's actually correct. If something's wrong, of course, I could edit it. And if I want to continue using natural language to modify it, I can type in here and keep that process
[09:05] going. Once I have this map, once I feel happy about it, the beauty of felt is how easy it is to share. This is often a barrier with traditional GIS. Sharing is restricted with licensing. It's
[09:17] restricted with the software. But here, I can just come in and give anyone on my team access. I can see that Haime is already owner, but I can give Rachel access to this map. I can say whether she's a viewer, an
[09:29] editor, or contributor. I have full permissions around it. And the cool thing is those folks can come in and this is all real time collaborative. So you can actually see my co-orker Haime is in this map. I see his presence here
[09:41] and he has left a comment. Not only do I see his cursor, he's doing some work here. He's moving around on this map figuring out which f wildfire risk is highest lowest. And I can see he's actually highlighted a piece of issue
[09:53] here. So I'll reply to him and say absolutely Himemeay. I am totally on that. Hime I will prioritize this. He's right there doing it right there in the corner. A shout out to Haime for being my live collaborator here. Come
[10:06] grab him afterwards and asking questions. He actually built a lot of what you're seeing here. And then the beauty of this is that similar to how you of course could ask AI to do track your deals or pull in
[10:19] some analytics, you want something behind the scenes. You want a CRM behind the scenes, an analytical stack behind the scenes. Felt is that GIS behind the scenes. So the last thing I'll show you in the product here is you can take a step back and I can see my whole
[10:32] organization's data. Every map I've been making, every project I've been working on, I can see every source that I'm connected to, every data bricks instance I'm connected to. It's all available in permission in a comprehensive GIS
[10:44] platform. So let me flip back to the deck here. How does this all work? Um, so the way it works is actually relatively simple.
[10:56] We built a felt MCP server. That MCP server plugs into datab bricks and the combination of those two things gives you a access to everything inside data bricks, the unity catalog, lakebased
[11:08] with postgis. Uh the full suite of tools becomes available. But then we layer on unique things like being able to find public data, what we call the global library. So authenticated government sources that you can rely on. We have a
[11:22] SQL sub agent that enhances it with more spatial abilities. uh we can geocode, we can style, we have a in-house cgrapher who has built an entire sale style language designed for AIs to make it really AI friendly while also completely
[11:36] beautiful and stunning. And so it you we're surprised at how much folks can create in just a simple prompt. The bigger picture here is I think the modern data stack has a new component to
[11:49] it, the modern geospatial stack, right? You're now integrating this into one cohesive stack. you've moved over to data bricks and then you suddenly have maps and sometimes the GIS team sits over here with a different stack and
[12:01] legacy software and we believe that's not really the future. The future is to have a modern data stack where each of these pieces is cohesively integrated together. You have your GIS stack on top with a GIS platform app development app
[12:13] raster collaboration a Q.js plugin EZRI integration cloud sources dashboards I won't go on and on but these are the pieces that we layer onto the puzzle of your modern data stack. And we're also big builders of a lot of the open source
[12:25] components that you're likely already using. Things like tippy canoe came out of our map shop. So we like to really figure out how you can build this cohesive system together.
[12:37] So a few takeaways um things that are important to know. I think if you're building this whether you're using felt or not, we found that there's three or four things that are really critical that make GIS move from the old way to the new way. The AI native way, the
[12:50] modern data way. The first is if you want to do this right, you need to make sure it's really fast. If you put in a prompt and it takes 30 minutes, 40 minutes, 50 minutes, come back with a map, no one's going to use it. No one in
[13:02] your organization is going to adopt it. The speed is really critical. And one thing we've developed at Felt is called Lightning. It's a piece of technology that lets you pull in a 100 million data points into a map and make it very, very performant. Um, it's a piece of
[13:15] technology built inhouse over the course of five years. You'll need something like that to make sure that as you bring in the real scale of data that you inevitably have in your data bricks instance, the map stays fast across
[13:27] everything you do. I'm a really big believer in taking a GIS team and empowering them, giving them way more power than they traditionally have. We've talked to so many folks on the GIS side where it's a bummer. They get
[13:39] tickets all day. They get emails saying, "Hey, can you make me this really basic map of three or four things, three or four dots, these lines here?" It's a big cue that never seems to go away. That is not how I think anyone wants to spend
[13:52] their time. Those basic maps, your entire team should be empowered to make it so you can focus on doing the most powerful analyses, the most complicated analyses, and importantly building the infrastructure for your organization. I
[14:04] think we're seeing the exact same thing in engineering. You're probably all seeing it within your organizations. Engineers are moving from having to make every small random feature, every small random bug fix to building infrastructure that lets your whole
[14:17] organization solve those problems themselves and then they can focus on the really meaty engineering problems. That same kind of thing is happening inside GIS geospatial readiness. This is a really
[14:29] critical one which is post data bricks. These instances come with lots of different tools to do a geospatial analysis. that doesn't mean you know how to use those tools correctly. So being able to understand what a buffer means
[14:42] in each projection and how you translate that to a user's intent is a really critical part. Oh, sorry my let's see if we can get that back up here.
[14:54] There we go. Um being able to translate user natural language to the right set of SQL queries and filling in the gaps where it's missing is really key. That is so key. So we do a lot of work to fill in the gaps to make sure any kind
[15:07] of question whether it's routing or isocchrons or buffering or joins um those things can be answered. And then of course permissions is the one of the most key things. Probably your most sensitive data set is spatial because it
[15:20] shows the locations of your people, your trucks, your assets, everything that you physically own. And so you have to make sure any permission structure that you introduce inside databicks is reflected in the product and passed on to the user
[15:32] while being able to do things like share broadly across your organization. So understanding where the sharing happens while making it really easy is is kind of a careful tension to navigate. And that's that's really all I had here. I
[15:45] wanted to thank everyone for coming to this talk. We have a booth at booth 139. It's over there. You can grab coffee where you see us. We have my co-founder Rachel Zach in the back. She's raising her hand so you can come there. And Haime over here who's on our team. They
[15:58] have free t-shirts they've promised you if you rush up to them and grab them. And then there's more goodies we can offer. But we have a few minutes so I'm happy to answer any questions that folks might have.
Learn more about the Databricks Data and AI platform.
The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.