Gemini CLI crossed 100,000 GitHub stars and 3.2 million monthly npm downloads, which makes it the second most popular AI coding agent in the world right now, behind only Claude Code. Google ships it with a free tier that gives you 60 requests per minute and 1,000 per day. And because it supports MCP out of the box, you can connect it to the Austin MLS MCP connector with a single config block and start querying live property data from your terminal. The same listing data displayed on NeuhausRE.com, just delivered inside the tool you already use to write code.
Sounds too easy right. It kind of is. One JSON entry in your settings file, an OAuth signup, and you have active listings, sold comps, and market stats flowing into your terminal sessions. Lets walk through how to set it up and what you can actually do with it.
What Gemini CLI Actually Is (Quick Context)
For the real estate folks reading this who might not live in a terminal all day, Gemini CLI is Google’s open-source command-line AI agent. You install it with npm, run gemini in your terminal, and you get access to Gemini 3 with a 1 million token context window. It can read your files, run shell commands, search the web, and (this is where we come in) connect to external data sources through MCP servers.
I wrote a full explainer on what MCP means for real estate if you want the deep dive. But the short version: MCP is a standard protocol that lets AI tools talk to live databases. Instead of copying data from a website and pasting it into your terminal, the AI just pulls it directly. According to Google’s own docs, Gemini CLI supports local stdio servers, SSE endpoints, and HTTP streaming, which means it works with basically any MCP server you throw at it.
The thing that sets Gemini CLI apart from something like Cursor is that it lives in your terminal. No GUI. No editor chrome. Just you, a command prompt, and whatever tools you’ve connected. For developers who already spend most of their day in a terminal (and lets be honest, if you’re reading an article about Gemini CLI, that’s probably you), adding Austin MLS data to that environment is pretty compelling.
Why You Would Want Austin Property Data in Your Terminal
Ok so who actually benefits from having MLS data inside Gemini CLI? Lets be specific.
Developers building property tech. If you’re writing an investment calculator, a listing aggregator, or any tool that touches real estate data, you need a live data source to test against. Having property data one prompt away inside your terminal means you can write a function, test it against real listings, and iterate without opening a browser. I’ve been building my own real estate tools for years because the off-the-shelf stuff never does exactly what I need. Gemini CLI with MLS access turns your terminal into a property data workbench.
Investors who script their deal analysis. I know more RE investors who write Python than you’d expect. Pull comps for a zip code, calculate cash-on-cash, filter by days on market, compare price per square foot across neighborhoods. If that’s your workflow, connecting to NeuhausRE.com through Gemini CLI means you can do all of that without leaving your terminal. Ask for every listing under $750,000 in 78738 with 4+ bedrooms and get actual MLS results back, not web scrapes.
People who just prefer terminals over GUIs. Look, some people use Perplexity for their property research. Some use Claude Desktop. Some use Cursor. And some people want a terminal. No judgement (well, maybe a little, I like the terminal crowd). If that’s you, this is the setup guide you’ve been waiting for.
Step-by-Step: Connecting Gemini CLI to Austin MLS Data
Here’s the actual setup. I’m going to walk through this like I would if we were pair-programming.
Step 1: Install Gemini CLI (If You Haven’t Already)
If you already have Gemini CLI installed, skip to Step 2. If not:
npm install -g @google/gemini-cli
Then run gemini to start it up. The first time it launches, it’ll ask you to authenticate with your Google account. The free tier gives you Gemini 3 with 60 requests per minute and 1,000 per day, which is generous enough for serious work.
Step 2: Open Your Settings File
Gemini CLI stores its MCP server configurations in settings.json. You have two options:
- User-level (recommended):
~/.gemini/settings.jsonin your home directory. This makes the Austin MLS available in every project. - Project-level:
.gemini/settings.jsonin your project root. Use this if you only want MLS access in a specific codebase.
If the file doesn’t exist yet, create it. If it already has other MCP servers configured (and if you’re a Gemini CLI power user you probably have a few), you’ll just add to the existing mcpServers object.
Step 3: Add the NeuhausRE MCP Server
Add this config block to your settings.json:
{
"mcpServers": {
"austin-mls": {
"httpUrl": "https://mls.neuhausre.com/mcp"
}
}
}
That’s it. The httpUrl field tells Gemini CLI this is a remote HTTP streaming server (as opposed to a local stdio server you’d run with command). No API keys to manage, no npm packages to install, no environment variables to set. One line does it.
Quick note: Gemini CLI uses httpUrl for HTTP streaming transport, which is different from url (SSE transport). Our MCP server supports streamable HTTP, so httpUrl is the right choice here. If you’ve configured MCP servers in Cursor or Claude Desktop before, you might be used to just a url field. Gemini CLI is a little more specific about transport types. No big deal, just something to know.
Step 4: Restart and Verify
After saving the config, restart Gemini CLI (or start a new terminal session). You can verify the server loaded with:
/mcp
This shows all connected MCP servers and their available tools. You should see austin-mls listed with four tools: search_listings, get_listing, get_comps, and get_market_stats.
Step 5: Authenticate
The first time Gemini CLI calls the MLS server, it’ll kick off an OAuth flow. You’ll see a signup form in your browser asking for your name, email, and phone number. Fill it out, authorize, and you’re done. Standard OAuth 2.1 with PKCE. Gemini CLI handles the handshake automatically.
The whole process from opening your settings file to running your first query takes maybe two minutes. And I type slow (the dyslexia doesn’t help with config files either, but at least JSON is mostly brackets and colons).
What You Can Query
Once connected, you get four tools that Gemini CLI can call during any conversation:
- search_listings : Find active listings by city, zip, neighborhood, price, beds, baths, features
- get_listing : Full details on a specific property (photos, tax history, HOA, school assignments)
- get_comps : Closed-sale comparables by address, radius, and date range (Active Buyer tier)
- get_market_stats : Median prices, inventory, DOM, price-per-sqft by location (Active Buyer tier)
You ask in natural language. Gemini figures out which tool to call and what parameters to pass. You don’t need to know the tool names or build structured arguments. Just ask like you’d ask a person.
Example Prompts to Try
Here are some real queries you can run once connected. These are the kinds of things I actually look at when I’m evaluating deals or helping buyers.
Searching listings:
- “Show me all active listings in Bee Cave under $800,000 with at least 3 bedrooms”
- “Find homes in Lakeway with a pool that have been on market more than 30 days”
- “What’s available in 78738 between $500K and $900K?”
- “List properties in Dripping Springs on at least half an acre”
Pulling comps:
- “Get me comparable sales within half a mile of 123 Main St, Bee Cave TX from the last 6 months”
- “Show closed sales in Westlake over $2M in the last 90 days”
Market analysis:
- “What’s the median home price in Bee Cave right now?”
- “Show me inventory levels and days on market for 78746“
- “Compare median prices in Dripping Springs vs Bee Cave vs Lakeway”
But the real power of having this inside Gemini CLI specifically? You can pipe the results directly into code. Ask for listings, then in the same session say “now write a Python script that calculates the price-per-square-foot distribution for those results.” Gemini writes the script using the actual data it just pulled. Or “take those comps and build me a CSV I can open in Excel.” It just does it. No copy-paste, no context switching. Malcolm Gladwell would call this the elimination of friction between question and answer. I’d just call it useful.
Developer Use Cases (Why This Is Different in Gemini CLI)
Every MCP client connects to the same server and gets the same data. But each client has a different superpower. Cursor’s superpower is editing code. Claude Desktop’s is deep analysis. Perplexity’s is web search blending. Gemini CLI’s superpower is automation and scripting.
Here’s what I mean.
Build a deal screener. You’re an investor. You want to pull every listing in a zip code, filter by price-per-sqft below the median, check days on market, and flag anything that looks like it’s priced to sell. In Gemini CLI, you can do this conversationally and then say “now turn that into a bash script I can run every morning.” It writes the script. You cron it. Done. You have an automated deal screener that runs against live MLS data. Not that hard right.
Prototype an API wrapper. You’re building a property search feature for your app. Instead of reading API docs and constructing test requests in Postman, you just ask Gemini CLI to search listings with various parameters and inspect what comes back. Iterate on your wrapper code with real data flowing through it. At Neuhaus Realty Group we built our entire MCP connector using this kind of tight feedback loop between code and data.
Generate market reports. Ask for market stats across five zip codes, then “format that into a markdown table comparing median price, DOM, and inventory.” Copy the output into your investor newsletter or client presentation. Takes about 30 seconds for something that would normally take an hour of pulling data from multiple sources.
Peter Thiel’s argument in Zero to One is that the best tools don’t just save time. They make previously impossible things possible. Running live MLS queries from your terminal while simultaneously writing code against the results? That was science fiction two years ago.
Free Access and the Active Buyer Retainer
The NeuhausRE MCP connector has two tiers.
Free tier. Search active listings right now, no cost, no credit card. You get 10 results per search, 10 queries per hour, and 100 per month. That’s enough to explore, build tools, and do casual property research. If you’re a developer who just needs test data to build against, this covers it.
Active Buyer tier ($200/month). This is a buyer’s agent retainer with me at Neuhaus Realty Group. When you sign a buyer representation agreement, you get full MLS access including sold comps, market stats, saved searches, and higher query limits (50 results per search, 200/hour, 10,000/month). You also get me. Nineteen years of Austin market experience, property tours, offer strategy, negotiations, the full agent relationship. The $200 is credited back to you at closing if you purchase through us, so if you end up buying you effectively paid nothing for the service.
I want to be clear about what this is. The free tier is a tool. The Active Buyer tier is a professional relationship with a real estate agent who happens to have built some pretty useful tech. You’re not buying data. You’re working with me, and the MLS access is part of what comes with that.
How Gemini CLI Compares to Other MCP Clients
If you’ve seen our setup guides for Claude Desktop, Cursor, or Perplexity, you might wonder what’s different.
Same MCP server. Same data. Same endpoint: https://mls.neuhausre.com/mcp. The difference is what each client excels at.
Cursor is for writing and editing code with property data alongside. Claude Desktop is for deep, long-form analysis of specific properties or investment strategies. Perplexity blends MLS data with web search, great for relocators doing broad research. Gemini CLI is for developers and power users who want the data in their terminal, piped into scripts, automated into workflows. It’s the most hands-on-keyboard option.
And unlike Cursor or Claude Desktop, Gemini CLI is completely free. No paid plan required on Google’s side. You authenticate with a personal Google account and get 1,000 requests per day. If you’re building something and want to iterate fast without worrying about usage limits, that’s hard to beat.
The full list of every AI client we support lives on the main connector page.
Why I Built This
I’ll give you the honest version. Most real estate websites (I wrote a whole piece about why real estate chatbots are broken) make you click through endless pages to find data. Search, filter, click, back, search, filter, click. Or worse, a chatbot pops up and demands your phone number before it’ll tell you anything useful.
The property data we display on NeuhausRE.com should be accessible in whatever tool you actually work in. For developers, that’s a terminal. So we built an MCP server that works in terminals. The same listings, the same comps, the same market data. Just delivered differently.
And honestly the kind of person who installs a CLI tool and configures MCP servers in JSON tends to be the kind of person who does their homework before calling an agent. Those are my favorite clients. We tend to get along pretty well (I’m a lighting designer turned realtor turned… whatever I am now, so I appreciate the technically minded).
Frequently Asked Questions
Ready to Connect?
The setup is two minutes. Add the config block to ~/.gemini/settings.json, restart Gemini CLI, authenticate, and start querying Austin real estate data from your terminal. If you run into anything during setup or want to talk about what you’re building, reach out to me directly. I built this because I think property data should live where developers actually work, not behind a chatbot that asks for your phone number first. And the people who configure MCP servers in JSON files tend to be exactly the kind of clients I work best with.
The full list of supported AI clients and setup docs is on the Austin MLS MCP connector page.
Be safe, be good, and be nice to people.