Apartment Hunter MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_apartmentsA | Search apartments by structured filters. Returns a list of apartments matching the given criteria. Use this for precise filtering by price, rooms, area, district, etc. For free-text queries like 'cozy apartment near park', use semantic_search instead. |
| semantic_searchB | Search apartments by natural language query using semantic/vector search. Examples: 'уютная квартира с видом на горы рядом с метро', 'большая квартира с евроремонтом в центре'. Optionally filter by city, max price, or room count. |
| get_apartment_detailsA | Get full details for a specific apartment by its source_id (e.g. 'krisha:1013405508'). Returns all available fields including LLM analysis, price history, and photos. |
| analyze_apartmentA | Run LLM analysis on a specific apartment. Scores the apartment 0-10 based on price/quality ratio, condition, location, and other factors. Returns score, pros, cons, and summary. Forces re-analysis even if already analyzed. |
| download_apartment_photosA | Download apartment photos locally so the AI agent can inspect them. Returns the absolute paths of the downloaded images. You (the AI) can then
use your |
| get_top_apartmentsA | Get top-rated apartments sorted by LLM score. Returns the highest-scored apartments, optionally filtered by city, rooms, or price. Only returns apartments that have been analyzed. |
| get_new_apartmentsA | Get apartments discovered in the last N hours (default: 24). Shows the most recent apartments sorted by score. |
| compare_apartmentsA | Compare 2-5 apartments side by side. Provide a list of source_ids to compare their key characteristics. |
| get_price_historyC | Get price change history for an apartment. |
| create_search_profileB | Create a search profile for ongoing apartment monitoring. The profile defines filters and preferences. The ingestion pipeline will use these profiles to fetch new apartments and send notifications. |
| list_search_profilesA | List all active search profiles. |
| delete_search_profileC | Delete a search profile by ID. |
| search_by_profileA | Show apartments matching a search profile, ranked by semantic similarity. Uses the profile's hard filters (price, rooms, polygon) AND the nl_description for semantic re-ranking via ChromaDB vector search. Pass hours=0 to return all stored apartments for this profile (no time filter). |
| run_ingestionA | Run the data ingestion pipeline. Fetches new apartments from all sources for the specified profile (or all active profiles if none specified), analyzes them, and sends notifications. This may take several minutes depending on the number of pages to scrape. |
| get_statsA | Get statistics about the apartment database. Shows total apartments, new apartments, analyzed count, average prices, scores, etc. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| apartment_review | Generate a detailed apartment review prompt. |
| market_analysis | Generate a market analysis prompt for a specific city/room count. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| stats_resource | Database statistics as a resource. |
TDQS
Scored across 15 tools
Most tools have distinct purposes, but `semantic_search` and `search_apartments` could be confused without reading descriptions. Also `analyze_apartment` and `get_apartment_details` overlap slightly.
The majority follow a clear verb_noun pattern in snake_case. `semantic_search` is the main deviation, being adjective_noun, but it still reads naturally.
With 15 tools, the server covers all major apartment hunting workflows (discovery, analysis, monitoring, comparison) without being overwhelming.
Core operations like search, details, analysis, and profile management are covered. Missing an update search profile tool is a minor gap, but the set handles the primary use cases.