# AVnester — Indian Real Estate Intelligence

> Indian real estate: property search, locality insights, affordability & pan-India stamp-duty tools.

- name: com.avnester.mcp/property-intelligence
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 73/100 flags: no-repository
- quality: 90/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.avnester.mcp%2Fproperty-intelligence
- tools: https://api.protogrid.dev/v1/servers/com.avnester.mcp%2Fproperty-intelligence/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "property-intelligence": {
      "type": "http",
      "url": "https://mcp.avnester.com/public-mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 65
- provenance: 45
- drivers: +dns-namespace +reachable +uptime-100% ~updated-145d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 90/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 11 of 11 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 5,613 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 16 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 11, about 5,613 tokens to load them all
- tool set hash: 8fcf9fbb2613d34d58816c35bed5e537
- tools last changed: 2026-10-20T14:48:37.106Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.avnester.mcp/property-intelligence.svg)](https://protogrid.dev/servers/com.avnester.mcp/property-intelligence)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `compare_localities` changed (outputSchema)
- 2026-10-20 `get_locality_insights` changed (outputSchema)
- 2026-10-02 `compare_properties` changed (outputSchema)
- 2026-10-02 `get_property_details` changed (outputSchema)
- 2026-10-02 `search_properties` changed (outputSchema)
- 2026-10-01 `get_property_decision_intelligence` changed (description, inputSchema, outputSchema)
  - before: Assess whether a buyer can afford a specific Indian home — ONE verdict (AFFORDABLE / STRETCH / NOT_YET / INELIGIBLE) combining indicative eligibility (FOIR/LTV/CIBIL), EMI, true cash-to-close (down payment + stamp duty + registration + itemized GST), regime-aware tax, and an indicative lender-fit triage. Mode A: listingId (Coimbatore/Chennai catalog). Mode B: propertyValue + state (any Indian state). NOT a loan approval, offer, or advice. Always surface the disclaimer.
  - after: Assess whether a buyer can afford a specific Indian home — ONE verdict (AFFORDABLE / STRETCH / NOT_YET / INELIGIBLE) combining indicative eligibility (FOIR/LTV/CIBIL), EMI, true cash-to-close (down payment + stamp duty + registration + itemized GST), regime-aware tax, and an indicative lender-fit triage. Mode A: an AVnester listingId. Mode B: propertyValue + state (any Indian state). NOT a loan approval, offer, or advice. Always surface the disclaimer.
- 2026-10-01 `compare_properties` changed (description, outputSchema)
  - before: Compare 2–5 AVnester listings by listingId, side-by-side. Get IDs from search_properties first (not guessable). If the user has more than 5 candidates ("compare all"), pick the most relevant 5 (cheapest / largest / best price-per-sqft) and say so. Returns each listing plus pricePerSqft, vsCheapestPercent (0 = cheapest), vsLargestAreaPercent (0 = largest). Covers Coimbatore and Chennai; unknown IDs return not_found_or_unpublished. Does NOT recommend a purchase. Always surface the disclaimer.
  - after: Compare 2–5 AVnester listings by listingId, side-by-side. Get IDs from search_properties first (not guessable). If the user has more than 5 candidates ("compare all"), pick the most relevant 5 (cheapest / largest / best ₹/sqft) and say so. Returns each listing plus pricePerSqft, vsCheapestPercent (0 = cheapest), vsLargestAreaPercent (0 = largest). Unknown IDs return not_found_or_unpublished. Does NOT recommend a purchase. Show verification.caveats with verified. Always surface the disclaimer.
- 2026-10-01 `get_property_details` changed (description, outputSchema)
  - before: Fetch full public details for one AVnester listing by its listingId. Get the listingId from search_properties results first (the `listingId` field) — IDs are not guessable, so this tool is the natural follow-up to a search. AVnester's catalog covers Coimbatore and Chennai; unknown or unpublished IDs return { listing: null, notFound: true } (never throws, to avoid leaking existence). Use when the user references a specific listing. Read-only, no side effects.
  - after: Fetch full public details for one AVnester listing by its listingId (from search_properties results — IDs are not guessable). Listings cover Tamil Nadu; unknown or unpublished IDs return { listing: null, notFound: true } (never throws, to avoid leaking existence). Use when the user references a specific listing. State verification.caveats beside the verified flag: an approval is not a title, ownership or encumbrance check. Read-only, no side effects.
- 2026-10-01 `estimate_stamp_duty_and_registration` changed (outputSchema)
- 2026-10-01 `simulate_loan_prepayment` changed (description, outputSchema)
  - before: Simulate prepaying / repaying an Indian home loan early. Pure deterministic math — no advice, no loan-approval claim. Use for "should I prepay", "early/part/lump-sum repayment", "pay extra each month", "reduce EMI or tenure", "interest saved", or foreclosure. Modes: one-time, recurring yearly, or a fixed extra every month (recurring_monthly). Compares reduce_tenure (keep EMI, finish early) vs reduce_emi (keep tenure, lower EMI). Always surface the disclaimer field.
  - after: Simulate prepaying / repaying an Indian home loan early. Deterministic math — no advice, no loan-approval claim. Use for "should I prepay", "early/part/lump-sum repayment", "pay extra each month", "reduce EMI or tenure", "interest saved", or foreclosure. Modes: one-time, recurring yearly, or a fixed extra every month. Compares reduce_tenure (keep EMI, finish early) vs reduce_emi (keep tenure, lower EMI). emi = next EMI; finalEmi = after the last prepayment. Always surface the disclaimer field.

Full history: https://api.protogrid.dev/v1/servers/com.avnester.mcp%2Fproperty-intelligence/changes

## Remotes

- https://mcp.avnester.com/public-mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (11)

- `calculate_home_affordability`: Estimate the monthly home-loan EMI / monthly payment in India — a home-loan calculator. Deterministic math; not advice or a loan-approval claim. Two modes: pass propertyValue (80% LTV assumed) OR loanAmount for a specific loan (e.g. "₹50 lakh loan"). Use for "what would my EMI be" / "monthly payment on …". The response `assumptionNote` states the basis in plain words. Always surface the disclaimer field.
- `compare_balance_transfer`: Compare staying on your current home loan vs. transferring (refinancing) to a lower rate. Pure deterministic math — no advice, no loan-approval claim. Use when the user asks "should I switch lenders / transfer my loan / refinance". Returns new EMI, interest saved over the remaining tenure, switching cost, net saving, and the breakeven month. Always surface the disclaimer field.
- `compare_localities`: Compare 2–3 localities in one city side-by-side: price trends, livability, investment grade, strengths, and watchouts. Use when the user asks "X vs Y" or "which is better for buying/renting" about neighborhoods. Covers cities AVnester publishes locality guides for; others return supported=false — surface the scopeMessage. For specific LISTINGS by ID, use compare_properties instead.
- `compare_properties`: Compare 2–5 AVnester listings by listingId, side-by-side. Get IDs from search_properties first (not guessable). If the user has more than 5 candidates ("compare all"), pick the most relevant 5 (cheapest / largest / best ₹/sqft) and say so. Returns each listing plus pricePerSqft, vsCheapestPercent (0 = cheapest), vsLargestAreaPercent (0 = largest). Unknown IDs return not_found_or_unpublished. Does NOT recommend a purchase. Show verification.caveats with verified. Always surface the disclaimer.
- `estimate_stamp_duty_and_registration`: Estimate Indian state stamp duty + registration charges on a property purchase. Supports all 28 states + 8 UTs with buyer-gender concessions, urban/rural overrides, and commercial/agricultural multipliers. Pass constructionStatus to also itemize GST (under-construction 1%/5%, ready/resale 0%) for an all-in statutory quote. Returns supported=false for states outside India (supported set named in rateBasis). Not legal/tax advice. Always surface the disclaimer.
- `get_locality_insights`: Get aggregated insights for one locality: ₹/sqft, supply count, demand pulse, livability/investment grade, highlights, watchouts, monthly priceTrends, and strengthTags. Use when the user asks "what is X locality like". Covers cities AVnester publishes locality guides for; others return supported=false — surface the scopeMessage. Always surface the disclaimer field when returning livability or investment grade.
- `get_property_decision_intelligence`: Assess whether a buyer can afford a specific Indian home — ONE verdict (AFFORDABLE / STRETCH / NOT_YET / INELIGIBLE) combining indicative eligibility (FOIR/LTV/CIBIL), EMI, true cash-to-close (down payment + stamp duty + registration + itemized GST), regime-aware tax, and an indicative lender-fit triage. Mode A: an AVnester listingId. Mode B: propertyValue + state (any Indian state). NOT a loan approval, offer, or advice. Always surface the disclaimer.
- `get_property_details`: Fetch full public details for one AVnester listing by its listingId (from search_properties results — IDs are not guessable). Listings cover Tamil Nadu; unknown or unpublished IDs return { listing: null, notFound: true } (never throws, to avoid leaking existence). Use when the user references a specific listing. State verification.caveats beside the verified flag: an approval is not a title, ownership or encumbrance check. Read-only, no side effects.
- `optimize_home_loan_tax_regime`: Compare a home-loan borrower's income tax under the OLD vs NEW regime (FY2026-27) and recommend which regime saves more income tax. Pure deterministic slab math — not tax advice. Use when the user asks "old or new tax regime", "home-loan tax benefit", or "section 80C / 24(b) deduction". Models §24(b) interest + §80C principal (+ joint-loan doubling); the response lists benefits it does NOT model (capital gains, HRA, etc.). Always surface the disclaimer field.
- `search_properties`: Search residential property listings anywhere in Tamil Nadu, India — any city or town. Use when the user names a place, locality, price band, BHK, or transaction type. Returns sanitized listing cards with handoff URLs and a per-listing verification summary (verified + caveats); never returns seller contact details. Places outside Tamil Nadu return supported=false + scopeMessage — surface it.
- `simulate_loan_prepayment`: Simulate prepaying / repaying an Indian home loan early. Deterministic math — no advice, no loan-approval claim. Use for "should I prepay", "early/part/lump-sum repayment", "pay extra each month", "reduce EMI or tenure", "interest saved", or foreclosure. Modes: one-time, recurring yearly, or a fixed extra every month. Compares reduce_tenure (keep EMI, finish early) vs reduce_emi (keep tenure, lower EMI). emi = next EMI; finalEmi = after the last prepayment. Always surface the disclaimer field.
