Real Estate Investment MCP Server

by ericnsibley

Integrations

  • Powers the web server that connects to the MCP server and handles client requests from the htmx UI.

  • Provides a lightweight frontend interface for the chatbot, allowing users to interact with the real estate data analysis tools.

  • Templates webpages that are returned to the htmx frontend, enabling dynamic content generation for the chat interface.

Мотивация

Как LLM взаимодействует со своей средой в ваших системах? Не взаимодействует. Это API вызова и ответа. Я постоянно слышу Агенты то, Агенты сё, но мне кажется, что без доступа к инструментам, которые позволяют им наблюдать или манипулировать своей средой, Агенты принципиально ограничены в выполнении тех значимых задач, которые нам интересны.

Первые десять раз, когда я вижу новое модное слово, я стараюсь изо всех сил игнорировать шум, но после того, как Model Context Protocol (MCP) начал всплывать, я вникаю в него. Представляя последовательный формат для рекламы существования инструментов и ресурсов и того, как их использовать, он аккуратно решает проблему. Когда вам нужно создать новый коннектор для LLM к инструменту или базе данных, вы можете найти готовый сервер MCP с открытым исходным кодом и добавить его. У MCP также есть корпоративный спонсор, который его поддерживает — Anthropic , один из ключевых игроков отрасли — поэтому он был догфудным (dogfed?) с самого начала и создавался на века.

План

Мне нравится изучать что-то новое, решая реальные проблемы — я считаю, что так результаты лучше застревают в моей голове. Я проделал массу работы по Retrieval Augmented Generation (RAG) и готовлю большую ее часть для открытого исходного кода, и я вижу MCP как следующую эволюцию в архитектурах RAG. Я думаю, что в ближайшем будущем, если вы хорошо делаете RAG, вы будете делать это поверх MCP.

Я недавно изучал инвестиции в недвижимость, ожидая коррекции рынка в течение ближайшего года или двух. Я собираюсь загрузить некоторые бесплатные данные Zillow в базу данных, а затем запустить на ней сервер MCP. Затем я собираюсь запустить сервер FastAPI, который подключается к серверу MCP и обслуживает запросы из пользовательского интерфейса htmx. Конечная цель — чат-бот, который может помочь мне изучить эти данные о недвижимости и принять некоторые решения о том, на каких рынках искать сделки.

Данные, которые я собираюсь загрузить, включают:

  • Индекс стоимости жилья Zillow (ZHVI)показатель типичной стоимости жилья для определенного региона и типа жилья в пределах от 65-го до 95-го процентиля.
  • Прогноз стоимости жилья от Zillow (ZHVF)перспективная оценка тенденций стоимости жилья, основанная на текущих и исторических рыночных данных.
  • Индекс арендной платы Zillow Observed Rent Index (ZORI)сглаженный показатель типичных рыночных арендных ставок, наблюдаемых в текущих и нерыночных объявлениях об аренде.
  • Прогноз наблюдаемой арендной платы Zillow (ZORF)прогнозируемые изменения цен на аренду на основе тенденций ZORI и рыночных показателей.

Вы можете заметить, что я исключаю данные ZHVI из-за их отсутствия — они только недавно начали их отслеживать.

Это очень специфичные для предметной области данные — вы вряд ли захотите делать предположения о данных, не прочитав определения — поэтому я думаю, что это будет отличным примером, поскольку обладатель степени магистра права не сможет интуитивно разобраться в тривиальном наборе проблем.

Я хочу попросить LLM помочь мне найти рынок с балансом доступных домов с арендной платой, которая приносит доход с большими прогнозируемыми будущими темпами роста. Я также не хочу принимать эти прогнозируемые темпы роста как должное — давайте немного попрограммируем, чтобы увидеть, как часто и в какой области они, как правило, оказываются правильными. Я ожидаю, что это потребует много оперативной инженерии для создания различных запросов. Затем я смогу сохранить эти подсказки как подсказки MCP, чтобы предлагать их чат-боту и выполнять в базе данных.

Я выбираю sqlite в качестве базы данных, поскольку она хранит память в локальном файле, поэтому не требуется перезагрузка или поднятие/опускание базы данных. Я собираюсь запустить базу данных в контейнере для переносимости, поэтому сохранение состояния базы данных в файле означает, что я могу рассматривать ее как «кэшированную» загрузку данных, если захочу. Таким образом, мне не нужно перезагружать данные Zillow в базу данных каждый раз, когда я перезапускаю контейнер, если я монтирую его к локальному тому.

Чтобы иметь возможность общаться с этими данными, я знаю, что мне нужно написать какой-то сервер MCP, который может выполнять запросы к таблицам, которые мы только что написали. Я думаю, что мне нужно будет кодировать полезные запросы как подсказки MCP или инструменты, которые затем представляются LLM за клиентом MCP из того, что я прочитал до сих пор, но я пока не уверен, как это выглядит на практике. Я начинаю с этой документации от langchain, смешанной с несколькими другими вещами, которые я читал, в качестве начального сервера, из которого я могу построить. Затем я в основном следовал документации Anthropic для написания начала моего клиента MCP, хотя я заменил большую часть их кода на агент langgraph ReAct. Затем я не был уверен, как заставить клиент и сервер общаться друг с другом, поэтому я нашел эту действительно замечательную документацию MCP , в которой говорится о различных методах транспортировки, встроенных в MCP. Я использую метод по умолчанию, который заключается в передаче сообщений в процессе между клиентом и сервером с помощью stdio. Это будет один контейнер с локальной базой данных и бэкендом приложения внутри, так что это имеет смысл, но для чего-либо производственного уровня я представляю, что сервер MCP будет отделен от бэкенда, что потребует более сложной конфигурации потоковой передачи HTTP. Я оставлю это на тот случай, когда мне придется создать что-то подобное для работы.

Прямо сейчас это один скрипт, который я выполняю для генерации одного сообщения. Чтобы сделать это полезным, мне нужно прикрепить веб-сервер, который принимает пользовательские запросы и пропускает их через эти функции. Чтобы сделать веб-сервер полезным, мне понадобится фронтенд, который выглядит как интерфейс чата, чтобы делать запросы к серверу. Streamlit в последнее время был в моде для проектов ИИ, подобных этому, и я пробовал его в предыдущих проектах , а также в качестве внутреннего инструментария для работы, но я пришел к выводу, что запуск медленного кода React из медленного кода Python, требующий целого дополнительного куска серверного кода, который вам нужно развернуть для Python, — не лучший способ создания легковесных фронтендов. Никто не хочет переписывать доказательство концепции во что-то по-настоящему производственного уровня после его одобрения, поэтому часто кажется, что этого просто не происходит. Я написал больше, чем положено, на React, что устранило бы посредника Python здесь, но это действительно кажется излишеством. Каждый раз, когда я создаю что-то fullstack, я в конечном итоге делаю больше фронтенд-разработки, чем я на самом деле пытался изучить. HTMX уже некоторое время находится на моем радаре, и я собираюсь попробовать его для этого проекта — он смехотворно легкий и обеспечивает именно минималистичную функциональность, которая требуется низкологичному интерфейсу, такому как приложение чата. Кроме того, мемы элитные . Единственное, что это влияет на мой выбор сервера, — это то, что мне нужно возвращать шаблонизированный HTML, поэтому я собираюсь использовать jinja для шаблонизации моих веб-страниц и отправлять их с тегом скрипта HTMX. Это серьезно все, что вам нужно для запуска, это потрясающе.

Хотя серверы Echo не очень интересны, так что давайте подключим нашего агента LLM. Я добавил клиент MCP в жизненный цикл сервера FastAPI, привязав его к состоянию приложения, чтобы его можно было передавать между работниками потокобезопасным способом, а не так, как клиент/сервер построены с пулами. Мы просто передаем сообщение агенту и форматируем вывод в небольшой html, а затем передаем его обратно в UI.

-
security - not tested
F
license - not found
-
quality - not tested

Сервер MCP, который подключается к базе данных SQLite с данными о недвижимости Zillow, позволяя пользователям изучать стоимость недвижимости, индексы арендной платы и прогнозы через интерфейс чата для принятия обоснованных инвестиционных решений.

  1. План

    Related MCP Servers

    • -
      security
      F
      license
      -
      quality
      An MCP server that provides safe, read-only access to SQLite databases through MCP. This server is built with the FastMCP framework, which enables LLMs to explore and query SQLite databases with built-in safety features and query validation.
      Last updated -
      49
      Python
    • -
      security
      A
      license
      -
      quality
      An MCP server implementation that enables Claude AI to interact with Clickhouse databases. Features include secure database connections, query execution, read-only mode support, and multi-query capabilities.
      Last updated -
      Python
      MIT License
      • Apple
    • -
      security
      F
      license
      -
      quality
      An MCP server that monitors and provides analytics on weekly report submissions in a Google Sheet, allowing users to check missing submissions, view statistics, and track individual reporting status.
      Last updated -
      Python
    • A
      security
      A
      license
      A
      quality
      An open-source MCP server that connects to various data sources (SQL databases, CSV, Parquet files), allowing AI models to execute SQL queries and generate data visualizations for analytics and business intelligence.
      Last updated -
      10
      19
      Python
      MIT License
      • Linux
      • Apple

    View all related MCP servers

    ID: jum3oymicm