Skip to main content
Glama

Real Estate MCP Server

by agentic-ops
main.pyโ€ข3.06 kB
""" Real Estate MCP Server A comprehensive Model Context Protocol server for real estate data management. Provides tools, resources, and prompts for property listings, agent management, market analysis, client relationships, and area intelligence. """ import asyncio import sys from mcp.server.fastmcp import FastMCP from prompts import register_all_prompts from resources import ( register_agent_resources, register_client_resources, register_location_resources, register_market_resources, register_property_resources, ) from tools.agent_tools import register_agent_tools from tools.area_tools import register_area_tools from tools.client_tools import register_client_tools from tools.market_tools import register_market_tools # Import all component registration functions from tools.property_tools import register_property_tools from tools.system_tools import register_system_tools from utils import data_manager # Create the FastMCP server mcp = FastMCP("Real Estate MCP Server") def register_all_components(): """Register all tools, resources, and prompts with the MCP server""" # Register all tool categories register_property_tools(mcp) register_agent_tools(mcp) register_market_tools(mcp) register_client_tools(mcp) register_area_tools(mcp) register_system_tools(mcp) # Register all resources register_property_resources(mcp) register_agent_resources(mcp) register_market_resources(mcp) register_client_resources(mcp) register_location_resources(mcp) # Register all prompts register_all_prompts(mcp) async def main(): """Main server function with transport selection""" import logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[logging.StreamHandler(sys.stderr)] ) logger = logging.getLogger(__name__) # Register all components register_all_components() # Log startup information to stderr logger.info("Real Estate MCP Server Starting...") logger.info(f"Loaded {len(data_manager.get_all_properties())} properties") logger.info(f"Loaded {len(data_manager.get_all_agents())} agents") logger.info(f"Loaded {len(data_manager.get_all_clients())} clients") logger.info(f"Loaded {len(data_manager.get_recent_sales())} recent sales") logger.info(f"Loaded {len(data_manager.get_all_areas())} areas") # Determine transport mode from command line arguments transport = "stdio" # Default to stdio for Claude Desktop compatibility if len(sys.argv) > 1: transport = sys.argv[1].lower() if transport == "sse": # Run with SSE transport for remote/web access logger.info("Running with SSE transport on http://127.0.0.1:8000/sse") await mcp.run_sse_async() else: # Run with STDIO transport for Claude Desktop logger.info("Running with STDIO transport") await mcp.run_stdio_async() if __name__ == "__main__": asyncio.run(main())

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/agentic-ops/real-estate-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server