Skip to main content
Glama
README.md5.55 kB
# mcp-inmovilla A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that provides tools to interact with the Inmovilla API. This server enables LLMs to manage properties, clients, owners, and retrieve various enumerations from the Inmovilla real estate platform. ## About MCP The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Learn more: - [MCP Framework GitHub](https://github.com/QuantGeekDev/mcp-framework) - [MCP Framework Documentation](https://mcp-framework.com) - [MCP Specification](https://modelcontextprotocol.io) ## Installation ### 1. Clone and Install Dependencies ```bash git clone <repository-url> cd mcp-inmovilla npm install ``` ### 2. Build the Project ```bash npm run build ``` ### 3. Configure Environment Variables Create a `.env` file in the project root with the following variables: ```env INMOVILLA_API_TOKEN=your_inmovilla_token_here OPENAI_API_KEY=your_openai_api_key_here ``` #### Obtaining the Inmovilla API Token To get your Inmovilla API token: 1. Log in to [Inmovilla CRM](https://crm.inmovilla.com/panel) 2. Navigate to **Ajustes > Opciones > Token para API Rest** 3. Generate your token 4. Copy the token to your `.env` file > **Note**: Tokens will automatically expire after 3 months of inactivity. #### Obtaining the OpenAI API Key 1. Sign up or log in to [OpenAI Platform](https://platform.openai.com) 2. Navigate to API keys section 3. Create a new API key 4. Copy the key to your `.env` file ### 4. Start the Server ```bash npm start ``` The MCP server will start on port 1337 at `http://localhost:1337/mcp`. ## Project Structure ``` mcp-inmovilla/ ├── src/ │ ├── tools/ # MCP Tools for Inmovilla API │ │ ├── CreateClientTool.ts │ │ ├── CreateOwnerTool.ts │ │ ├── CreatePropertyTool.ts │ │ ├── DeleteClientTool.ts │ │ ├── DeleteOwnerTool.ts │ │ ├── GetClientTool.ts │ │ ├── GetEnumTool.ts │ │ ├── GetOwnerTool.ts │ │ ├── GetPropertyExtraInfoTool.ts │ │ ├── GetPropertyLeadsTool.ts │ │ ├── GetPropertyTool.ts │ │ ├── ListPropertiesTool.ts │ │ ├── SearchClientsTool.ts │ │ ├── UpdateClientTool.ts │ │ ├── UpdateOwnerTool.ts │ │ └── UpdatePropertyTool.ts │ └── index.ts # Server entry point ├── python_tester/ # Python client for testing │ ├── openai2mcp_test.py # OpenAI chatbot client │ └── requirements.txt # Python dependencies ├── package.json ├── tsconfig.json ├── .env # Environment variables (create this) └── README.md ``` ## Python Testing Client The `python_tester` folder contains a Python script that connects to the MCP server and allows you to interact with it using an OpenAI-powered chatbot. ### Setup 1. **Ensure the MCP server is running** (see step 4 above) 2. **Install Python dependencies**: ```bash cd python_tester pip install -r requirements.txt ``` 3. **Run the chatbot**: ```bash python3 openai2mcp_test.py ``` ### How It Works The Python client: - Connects to the MCP server via Streamable HTTP on `http://localhost:1337/mcp` - Uses the OpenAI API (GPT-4) to process natural language queries - Automatically discovers and calls available MCP tools - Provides a console-based chat interface ### Example Usage ``` You: List all available properties AI: [Calls list_properties tool and returns results] You: Get information about property with reference ABC123 AI: [Calls get_property tool with the reference and returns property details] You: What types of properties are available? AI: [Calls get_enum tool for property types and returns the list] ``` Type `quit` or `exit` to end the chat session. ## Available Tools The MCP server provides the following tools for interacting with the Inmovilla API: ### Properties - `create_property` - Create a new property or prospect - `get_property` - Get property details by code or reference - `get_property_extra_info` - Get extra information (portal publication info, leads) - `get_property_leads` - Get leads for properties within a date range - `list_properties` - List all properties - `update_property` - Update an existing property ### Clients - `create_client` - Create a new client - `get_client` - Get client details by code - `search_clients` - Search for clients - `update_client` - Update an existing client - `delete_client` - Delete a client ### Owners - `create_owner` - Create a new owner - `get_owner` - Get owner details - `update_owner` - Update an existing owner - `delete_owner` - Delete an owner ### Enumerations - `get_enum` - Get enum values for various categories (calidades, tipos, paises, ciudades, zonas) ## Development ### Watch Mode To automatically rebuild on file changes: ```bash npm run watch ``` ### Adding New Tools Tools are automatically loaded from the `src/tools/` directory. Each tool extends the `MCPTool` class and defines: - `name` - Tool identifier - `description` - What the tool does - `schema` - Input parameters using Zod - `execute()` - Tool implementation ## API Documentation For detailed information about the Inmovilla API endpoints and parameters, refer to `Documentación API REST v1.html` in the project root. ## License [Your License Here]

Latest Blog Posts

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/laica-ayudavets/mcp-inmovilla'

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