Koskamo

YerevanEstate MCP

An MCP server providing Yerevan apartment price analytics, including market overviews, district and street-level pricing, property valuations, rental yields, and premium individual listing searches with price history and comparables.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

YerevanEstate MCP logo, by YerevanEstateVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by YerevanEstate
You need:Premium key
MCP endpoint (Streamable HTTP)
https://www.yerevanestate.am/api/mcp
Vendor documentation

What its tools do

14 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

14 of 14 have a description · 14 of 14 declare behavior hints · 6 of 13 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to yerevanestate.am ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Retrieve average asking prices per square meter by district or street
  • Estimate the market value of a specific apartment based on attributes
  • Search for individual listings with price history and drops
  • Calculate rental yields by district and property type

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
yerevanestate 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
14 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
3 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Data on Yerevan apartment prices from sale and rent listings and government deal counts. Call get_market_overview first for context. Always cite month, n and that prices are asking prices. Read the methodology resource before interpreting numbers. All statistics are free. Tools marked [Premium] return individual listings and need a Premium key (this connection is FREE: those tools return only a count and a link to https://www.yerevanestate.am/ai#premium).

Tools

14 advertised

get_market_overview — Yerevan market overview
Advertised by the server during the last successful anonymous check.
Advertised read-only

Average asking price per m² (USD) for Yerevan and each of its 12 districts, change since Sep 2025, number of listings, and deals per district in the last full year. Цены на квартиры в Ереване по районам.

get_market_overview input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_market_overview annotations
{
  "readOnlyHint": true
}
get_district — District details
Advertised by the server during the last successful anonymous check.
Advertised read-only

One Yerevan district: price per m² by month, and prices split by new build vs secondary, renovation and building material. Подробно о районе.

get_district input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "district"
  ],
  "properties": {
    "district": {
      "type": "string",
      "description": "District: name in English, Russian or Armenian (e.g. Arabkir, Арабкир, Արաբկիր) or number 2–13"
    }
  }
}
get_district annotations
{
  "readOnlyHint": true
}
estimate_price — Estimate an apartment price or rent
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fair price range for a Yerevan apartment from comparable listings: median, 25th–75th percentile and, if a price is given, a verdict (below / in / above market) plus up to 5 similar listings. Sale: total for the given m². Rent: per month. Оценка квартиры: дорого или нет.

estimate_price input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "district",
    "constructionType",
    "newConstruction",
    "renovationType"
  ],
  "properties": {
    "sqm": {
      "type": "number",
      "description": "Area in m² (sale)",
      "exclusiveMinimum": 0
    },
    "price": {
      "type": "number",
      "description": "Asking price to judge, USD (sale total or monthly rent)",
      "exclusiveMinimum": 0
    },
    "rooms": {
      "enum": [
        "1",
        "2",
        "3",
        "4+"
      ],
      "type": "string",
      "description": "Rooms (required for rent)"
    },
    "district": {
      "type": "string",
      "description": "District: name in English, Russian or Armenian (e.g. Arabkir, Арабкир, Արաբկիր) or number 2–13"
    },
    "furniture": {
      "enum": [
        "With",
        "Without"
      ],
      "type": "string",
      "description": "Furniture (required for rent)"
    },
    "listingType": {
      "enum": [
        "sale",
        "rent"
      ],
      "type": "string",
      "default": "sale"
    },
    "renovationType": {
      "enum": [
        "renovated",
        "partial renovation",
        "no renovation"
      ],
      "type": "string",
      "description": "Renovation state"
    },
    "newConstruction": {
      "enum": [
        "Yes",
        "No"
      ],
      "type": "string",
      "description": "Yes = new build, No = secondary market"
    },
    "constructionType": {
      "enum": [
        "Monolith",
        "Stone",
        "Panels",
        "Bricks"
      ],
      "type": "string",
      "description": "Building material"
    }
  }
}
estimate_price annotations
{
  "readOnlyHint": true
}
get_price_history — Monthly price history for a segment
Advertised by the server during the last successful anonymous check.
Advertised read-only

Monthly average asking price per m² (USD and AMD) and listing counts for one segment: district × material × new/secondary × renovation. Use district 'Yerevan' or 1 for the whole city.

get_price_history input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "district",
    "constructionType",
    "newConstruction",
    "renovationType"
  ],
  "properties": {
    "district": {
      "type": "string",
      "description": "District name/number, or 'Yerevan' / 1 for the city"
    },
    "renovationType": {
      "enum": [
        "renovated",
        "partial renovation",
        "no renovation"
      ],
      "type": "string",
      "description": "Renovation state"
    },
    "newConstruction": {
      "enum": [
        "Yes",
        "No"
      ],
      "type": "string",
      "description": "Yes = new build, No = secondary market"
    },
    "constructionType": {
      "enum": [
        "Monolith",
        "Stone",
        "Panels",
        "Bricks"
      ],
      "type": "string",
      "description": "Building material"
    }
  }
}
get_price_history annotations
{
  "readOnlyHint": true
}
get_rental_yields — Rental yield by district
Advertised by the server during the last successful anonymous check.
Advertised read-only

Gross rental yield per district for one apartment type: median yield %, typical range, median monthly rent, median purchase price, payback years, sample size. Где выгоднее сдавать квартиру.

get_rental_yields input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "renovationType": {
      "enum": [
        "renovated",
        "partial renovation",
        "no renovation"
      ],
      "type": "string",
      "default": "renovated",
      "description": "Renovation state"
    },
    "newConstruction": {
      "enum": [
        "Yes",
        "No"
      ],
      "type": "string",
      "default": "No",
      "description": "Yes = new build, No = secondary market"
    },
    "constructionType": {
      "enum": [
        "Monolith",
        "Stone",
        "Panels",
        "Bricks"
      ],
      "type": "string",
      "default": "Stone",
      "description": "Building material"
    }
  }
}
get_rental_yields annotations
{
  "readOnlyHint": true
}
get_deals — Apartment deals (government data)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Number of apartment sale deals per month from government data, split into new-build (from developer) and secondary. Optionally for one district. Сколько квартир продано.

get_deals input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "district": {
      "type": "string",
      "description": "District: name in English, Russian or Armenian (e.g. Arabkir, Арабкир, Արաբկիր) or number 2–13"
    }
  }
}
get_deals annotations
{
  "readOnlyHint": true
}
search_listings — Search current listings
Advertised by the server during the last successful anonymous check.
Advertised read-only

[Premium] Find apartments currently listed for sale or rent (seen in the last 14 days) by district, street or block, distance from a point, rooms, price, area, new build and renovation. Returns up to 20 with price, $/m², street and an id for get_listing. Найти квартиры в продаже или аренде.

search_listings input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "near": {
      "type": "object",
      "required": [
        "lat",
        "lng"
      ],
      "properties": {
        "lat": {
          "type": "number"
        },
        "lng": {
          "type": "number"
        },
        "radiusM": {
          "type": "number",
          "default": 500,
          "maximum": 3000,
          "minimum": 100
        }
      },
      "description": "Only listings within radiusM metres of this point"
    },
    "sort": {
      "enum": [
        "price_asc",
        "price_desc",
        "ppsm_asc",
        "newest"
      ],
      "type": "string",
      "default": "price_asc"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1
    },
    "rooms": {
      "enum": [
        "1",
        "2",
        "3",
        "4+"
      ],
      "type": "string"
    },
    "maxSqm": {
      "type": "number"
    },
    "minSqm": {
      "type": "number"
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 9007199254740991,
      "minimum": 0
    },
    "street": {
      "type": "string",
      "description": "Street or block name in Armenian, English or Russian, old names and typos are fine (e.g. Komitas, Կոմիտաս, Комитаса, Davtashen 1st Block)"
    },
    "district": {
      "type": "string",
      "description": "District: name in English, Russian or Armenian (e.g. Arabkir, Арабкир, Արաբկիր) or number 2–13"
    },
    "maxPrice": {
      "type": "number",
      "description": "USD (sale total or monthly rent)"
    },
    "minPrice": {
      "type": "number",
      "description": "USD (sale total or monthly rent)"
    },
    "renovation": {
      "enum": [
        "renovated",
        "partial renovation",
        "no renovation"
      ],
      "type": "string",
      "description": "Renovation state"
    },
    "listingType": {
      "enum": [
        "sale",
        "rent"
      ],
      "type": "string",
      "default": "sale"
    },
    "newConstruction": {
      "enum": [
        "yes",
        "no"
      ],
      "type": "string"
    }
  }
}
search_listings annotations
{
  "readOnlyHint": true
}
get_price_drops — Listings whose price just dropped
Advertised by the server during the last successful anonymous check.
Advertised read-only

[Premium] Live listings whose asking price went down: current price vs the highest price in the last `days` days (default 30), biggest drops first. Filter by district, street, rooms. Квартиры, которые подешевели.

get_price_drops input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "days": {
      "type": "integer",
      "default": 30,
      "maximum": 120,
      "minimum": 7
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1
    },
    "rooms": {
      "enum": [
        "1",
        "2",
        "3",
        "4+"
      ],
      "type": "string"
    },
    "street": {
      "type": "string",
      "description": "Street or block name in any language"
    },
    "district": {
      "type": "string",
      "description": "District: name in English, Russian or Armenian (e.g. Arabkir, Арабкир, Արաբկիր) or number 2–13"
    },
    "minDropPct": {
      "type": "number",
      "default": 5,
      "maximum": 50,
      "minimum": 1
    },
    "listingType": {
      "enum": [
        "sale",
        "rent"
      ],
      "type": "string",
      "default": "sale"
    }
  }
}
get_price_drops annotations
{
  "readOnlyHint": true
}
get_street — One street or block
Advertised by the server during the last successful anonymous check.
Advertised read-only

Prices on one Yerevan street or block (quarter): median $/m² with p25–p75, new build vs resale, active listings, days on market, share of price cuts — for sale and rent, plus ~600 m segments of long streets (Komitas, Tigran Mets…) and the 5 buildings with most listings. Accepts names in Armenian, English, Russian, old names and typos. Every answer has n, window and fallback (radius500/district when the street has < 15 listings). Цены по улице.

get_street input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "e.g. Komitas, Կոմիտասի պողոտա, проспект Комитаса, Baghramyan, Davtashen 1st Block"
    }
  }
}
get_street annotations
{
  "readOnlyHint": true
}
estimate_address — Price at an exact address + what's nearby
Advertised by the server during the last successful anonymous check.
Advertised read-only

Price for a flat at an exact Yerevan address (e.g. 'Komitas 42', 'Комитаса 42', 'Կոմիտաս 42'): finds the building, estimates sale price (per m² and total) and monthly rent with a model trained on all listings (location down to the street segment, floor, renovation, building, metro, parks, schools, kindergartens), shows which factors push the price up or down, the building's floors/material, the street's median price, and distances to metro, schools, kindergartens, parks, playgrounds, shops, pharmacies, hospitals. Free. Цена по точному адресу и что рядом.

estimate_address input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "address"
  ],
  "properties": {
    "sqm": {
      "type": "number",
      "description": "area m² (default 60)",
      "exclusiveMinimum": 0
    },
    "floor": {
      "type": "integer",
      "maximum": 60,
      "minimum": 0
    },
    "rooms": {
      "type": "integer",
      "maximum": 8,
      "minimum": 1
    },
    "floors": {
      "type": "integer",
      "maximum": 60,
      "minimum": 1,
      "description": "floors in the building, if known (else taken from the building data)"
    },
    "address": {
      "type": "string",
      "description": "street + house number, any language"
    },
    "ceiling": {
      "type": "number",
      "maximum": 5,
      "minimum": 2,
      "description": "ceiling height, m"
    },
    "elevator": {
      "type": "boolean"
    },
    "material": {
      "enum": [
        "Monolith",
        "Stone",
        "Panels",
        "Bricks",
        "Cassette"
      ],
      "type": "string"
    },
    "newBuild": {
      "type": "boolean"
    },
    "furniture": {
      "type": "boolean",
      "description": "rent: furnished"
    },
    "renovation": {
      "enum": [
        "none",
        "old",
        "partial",
        "cosmetic",
        "major",
        "euro",
        "designer"
      ],
      "type": "string"
    },
    "listingType": {
      "enum": [
        "sale",
        "rent",
        "both"
      ],
      "type": "string",
      "default": "both"
    }
  }
}
estimate_address annotations
{
  "readOnlyHint": true
}
get_area_stats — Prices around a point
Advertised by the server during the last successful anonymous check.
Advertised read-only

Live asking-price stats for all listings within radiusM (default 500 m) of a point: median $/m², p25–p75, new vs resale, days on market, price cuts, plus the main streets in the circle. Use for 'how much near X' after geocoding X. Цены вокруг точки.

get_area_stats input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "lat",
    "lng"
  ],
  "properties": {
    "lat": {
      "type": "number"
    },
    "lng": {
      "type": "number"
    },
    "radiusM": {
      "type": "number",
      "default": 500,
      "maximum": 3000,
      "minimum": 100
    }
  }
}
get_area_stats annotations
{
  "readOnlyHint": true
}
get_listing — One listing with price history
Advertised by the server during the last successful anonymous check.
Advertised read-only

[Premium] Full details for one listing by id: specs, price history, days on market, fair-price verdict and comparables.

get_listing input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "listing id as returned by search_listings / get_price_drops (starts with L)"
    }
  }
}
get_listing annotations
{
  "readOnlyHint": true
}
search — Search (ChatGPT connector)
Advertised by the server during the last successful anonymous check.
Advertised read-only

[Premium] Free-text search over current Yerevan listings, e.g. '2 rooms Arabkir under 120000'. Returns ids for `fetch`.

search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string"
    }
  }
}
search annotations
{
  "readOnlyHint": true
}
fetch — Fetch (ChatGPT connector)
Advertised by the server during the last successful anonymous check.
Advertised read-only

[Premium] Fetch one listing by id returned from `search`.

fetch input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    }
  }
}
fetch annotations
{
  "readOnlyHint": true
}

Prompts

3 advertised

judge_listing — Is this listing a good price?

Advertised by the server during the last successful anonymous check.

Estimate a listing against the market

id
listing id (required)
compare_districts — Compare districts

Advertised by the server during the last successful anonymous check.

Compare two or more districts

districts
e.g. Arabkir, Kentron (required)
where_to_rent_out — Where to buy to rent out

Advertised by the server during the last successful anonymous check.

Best districts by rental yield

budget
Budget in USD

Resources

1 advertised

methodology — Methodology

Advertised by the server during the last successful anonymous check.

Sources, formulas, thresholds and limits behind every number

methodology URI
yerevanestate://methodology

MIME type: text/plain

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1122 ms
95th percentile latency
1122 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1122 ms · metadata changed · 14 tool(s), 1 resource(s), 0 resource template(s), 3 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http yerevanestate-mcp https://www.yerevanestate.am/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add yerevanestate-mcp --url https://www.yerevanestate.am/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable yerevanestate-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "yerevanestate-mcp": {
      "url": "https://www.yerevanestate.am/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "yerevanestate-mcp": {
      "type": "streamableHttp",
      "url": "https://www.yerevanestate.am/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start yerevanestate-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "yerevanestate-mcp": {
      "type": "http",
      "url": "https://www.yerevanestate.am/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http yerevanestate-mcp https://www.yerevanestate.am/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.yerevanestate.am/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "yerevanestate-mcp": {
      "serverUrl": "https://www.yerevanestate.am/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like YerevanEstate MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run YerevanEstate MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing