realestate-mcp 2.1.4 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,16 +18,6 @@ MCP server for real estate agents — 8 tools covering floor plans, virtual tour
18
18
  - **Improved virtual tours** — smooth transitions, fullscreen mode, touch/swipe navigation, progress bar, photo gallery
19
19
  - **91 tests** covering all tools
20
20
 
21
- ## 🚀 Pro Products
22
-
23
- | Product | Price | Description |
24
- |---------|-------|-------------|
25
- | [MCP Creator Kit](https://buy.polar.sh/polar_cl_tb87ROB9Xn0c5aohdn3NvkTINDF1xjW5zpkg70UwmcF) | €29 | Everything to create your own MCP server — template, CLI, docs, examples |
26
- | [SceneView Pro Starter Kit](https://buy.polar.sh/polar_cl_tb87ROB9Xn0c5aohdn3NvkTINDF1xjW5zpkg70UwmcF) | €49 | Complete Android 3D + AR app template — 4 screens, ready to customize |
27
- | [SceneView MCP Pro](https://buy.polar.sh/polar_cl_tb87ROB9Xn0c5aohdn3NvkTINDF1xjW5zpkg70UwmcF) | €9.99/mo | Premium MCP tools and priority support |
28
-
29
- ⭐ [Sponsor on GitHub](https://github.com/sponsors/sceneview) — Help us build the future of 3D/AR development
30
-
31
21
  ## Tools
32
22
 
33
23
  | Tool | Description |
package/dist/index.d.ts CHANGED
@@ -1,16 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * realestate-mcp v2.0.0 — MCP server for real estate agents.
3
+ * realestate-mcp v2.2.0 — MCP server for real estate agents.
4
4
  *
5
5
  * Tools:
6
- * generate_floor_plan — SVG floor plan from room dimensions
7
- * create_virtual_tour — Embeddable 3D virtual tour
8
- * property_description — AI-optimized listing descriptions (EN/FR)
9
- * staging_suggestions — Virtual staging recommendations
10
- * neighborhood_analysis — Neighborhood summary for an address
11
- * render_property_preview — 3D model-viewer embed
12
- * estimate_price — Rough property price estimation
13
- * compare_properties — Side-by-side property comparison
6
+ * generate_floor_plan — SVG floor plan from room dimensions
7
+ * create_virtual_tour — Embeddable 3D virtual tour
8
+ * property_description — AI-optimized listing descriptions (EN/FR)
9
+ * staging_suggestions — Virtual staging recommendations
10
+ * neighborhood_analysis — Neighborhood summary for an address
11
+ * render_property_preview — 3D model-viewer embed
12
+ * estimate_price — Rough property price estimation
13
+ * compare_properties — Side-by-side property comparison
14
+ * generate_energy_diagnostic — DPE energy performance estimation
15
+ * search_property_transactions — DVF real sales data (France)
16
+ * get_price_per_sqm — Average price/m2 from DVF (France)
17
+ * compare_neighborhoods — Compare prices between postal codes (DVF)
14
18
  *
15
19
  * Tiers:
16
20
  * Free — 50 requests/month
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;GAgBG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;GAoBG"}
package/dist/index.js CHANGED
@@ -1,16 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * realestate-mcp v2.0.0 — MCP server for real estate agents.
3
+ * realestate-mcp v2.2.0 — MCP server for real estate agents.
4
4
  *
5
5
  * Tools:
6
- * generate_floor_plan — SVG floor plan from room dimensions
7
- * create_virtual_tour — Embeddable 3D virtual tour
8
- * property_description — AI-optimized listing descriptions (EN/FR)
9
- * staging_suggestions — Virtual staging recommendations
10
- * neighborhood_analysis — Neighborhood summary for an address
11
- * render_property_preview — 3D model-viewer embed
12
- * estimate_price — Rough property price estimation
13
- * compare_properties — Side-by-side property comparison
6
+ * generate_floor_plan — SVG floor plan from room dimensions
7
+ * create_virtual_tour — Embeddable 3D virtual tour
8
+ * property_description — AI-optimized listing descriptions (EN/FR)
9
+ * staging_suggestions — Virtual staging recommendations
10
+ * neighborhood_analysis — Neighborhood summary for an address
11
+ * render_property_preview — 3D model-viewer embed
12
+ * estimate_price — Rough property price estimation
13
+ * compare_properties — Side-by-side property comparison
14
+ * generate_energy_diagnostic — DPE energy performance estimation
15
+ * search_property_transactions — DVF real sales data (France)
16
+ * get_price_per_sqm — Average price/m2 from DVF (France)
17
+ * compare_neighborhoods — Compare prices between postal codes (DVF)
14
18
  *
15
19
  * Tiers:
16
20
  * Free — 50 requests/month
@@ -28,6 +32,7 @@ import { generateNeighborhoodAnalysis } from "./tools/neighborhood-analysis.js";
28
32
  import { renderPropertyPreview } from "./tools/render-property-preview.js";
29
33
  import { estimatePrice } from "./tools/estimate-price.js";
30
34
  import { compareProperties } from "./tools/compare-properties.js";
35
+ import { searchPropertyTransactions, getPricePerSqm, compareNeighborhoods, } from "./tools/dvf-transactions.js";
31
36
  // ---------------------------------------------------------------------------
32
37
  // Legal disclaimer
33
38
  // ---------------------------------------------------------------------------
@@ -51,7 +56,7 @@ function checkUsage() {
51
56
  // ---------------------------------------------------------------------------
52
57
  const server = new McpServer({
53
58
  name: "realestate-mcp",
54
- version: "2.1.0",
59
+ version: "2.2.0",
55
60
  });
56
61
  // ---------------------------------------------------------------------------
57
62
  // Tool: generate_floor_plan
@@ -639,6 +644,100 @@ function generateEnergyDiagnostic(args) {
639
644
  };
640
645
  }
641
646
  // ---------------------------------------------------------------------------
647
+ // Tool: search_property_transactions (DVF)
648
+ // ---------------------------------------------------------------------------
649
+ server.tool("search_property_transactions", "Search real property sales in France using DVF (Demandes de Valeurs Foncieres) open data. Returns actual recorded transactions with price, surface, property type, address, and date. Data from data.gouv.fr — no API key required. Covers all sales since 2014.", {
650
+ codePostal: z.string().optional().describe("French postal code, e.g. '75001' for Paris 1er"),
651
+ codeCommune: z.string().optional().describe("INSEE commune code, e.g. '75101' for Paris 1er arrondissement"),
652
+ dateMin: z.string().optional().describe("Start date filter (YYYY-MM-DD), e.g. '2023-01-01'"),
653
+ dateMax: z.string().optional().describe("End date filter (YYYY-MM-DD), e.g. '2024-12-31'"),
654
+ typeLocal: z
655
+ .enum(["Maison", "Appartement", "Dependance", "Local industriel. commercial ou assimile"])
656
+ .optional()
657
+ .describe("Property type filter"),
658
+ limit: z.number().int().positive().max(200).optional().describe("Max results to return (default: 50, max: 200)"),
659
+ }, async (args) => {
660
+ const usage = checkUsage();
661
+ if (!usage.allowed) {
662
+ return { content: [{ type: "text", text: usage.error }], isError: true };
663
+ }
664
+ try {
665
+ const result = await searchPropertyTransactions(args);
666
+ return {
667
+ content: [{ type: "text", text: addDisclaimer(JSON.stringify(result, null, 2)) }],
668
+ };
669
+ }
670
+ catch (err) {
671
+ return {
672
+ content: [{ type: "text", text: `Error: ${err instanceof Error ? err.message : String(err)}` }],
673
+ isError: true,
674
+ };
675
+ }
676
+ });
677
+ // ---------------------------------------------------------------------------
678
+ // Tool: get_price_per_sqm (DVF)
679
+ // ---------------------------------------------------------------------------
680
+ server.tool("get_price_per_sqm", "Calculate average, median, min, and max price per square meter for a French location based on real DVF transactions. Returns price statistics and a breakdown by price range. Useful for property valuation and market analysis.", {
681
+ codePostal: z.string().optional().describe("French postal code, e.g. '69001' for Lyon 1er"),
682
+ codeCommune: z.string().optional().describe("INSEE commune code"),
683
+ typeLocal: z
684
+ .enum(["Maison", "Appartement"])
685
+ .optional()
686
+ .describe("Filter by property type (Maison or Appartement)"),
687
+ dateMin: z.string().optional().describe("Start date (YYYY-MM-DD), e.g. '2023-01-01'"),
688
+ dateMax: z.string().optional().describe("End date (YYYY-MM-DD), e.g. '2024-12-31'"),
689
+ }, async (args) => {
690
+ const usage = checkUsage();
691
+ if (!usage.allowed) {
692
+ return { content: [{ type: "text", text: usage.error }], isError: true };
693
+ }
694
+ try {
695
+ const result = await getPricePerSqm(args);
696
+ return {
697
+ content: [{ type: "text", text: addDisclaimer(JSON.stringify(result, null, 2)) }],
698
+ };
699
+ }
700
+ catch (err) {
701
+ return {
702
+ content: [{ type: "text", text: `Error: ${err instanceof Error ? err.message : String(err)}` }],
703
+ isError: true,
704
+ };
705
+ }
706
+ });
707
+ // ---------------------------------------------------------------------------
708
+ // Tool: compare_neighborhoods (DVF)
709
+ // ---------------------------------------------------------------------------
710
+ server.tool("compare_neighborhoods", "Compare real property prices between 2-5 French postal codes using DVF transaction data. Returns average and median price/m2, average sale price, transaction count, and average surface for each area. Identifies cheapest and most expensive neighborhoods.", {
711
+ postalCodes: z
712
+ .array(z.string())
713
+ .min(2)
714
+ .max(5)
715
+ .describe("2-5 French postal codes to compare, e.g. ['75001', '75011', '75020']"),
716
+ typeLocal: z
717
+ .enum(["Maison", "Appartement"])
718
+ .optional()
719
+ .describe("Filter by property type (Maison or Appartement)"),
720
+ dateMin: z.string().optional().describe("Start date (YYYY-MM-DD)"),
721
+ dateMax: z.string().optional().describe("End date (YYYY-MM-DD)"),
722
+ }, async (args) => {
723
+ const usage = checkUsage();
724
+ if (!usage.allowed) {
725
+ return { content: [{ type: "text", text: usage.error }], isError: true };
726
+ }
727
+ try {
728
+ const result = await compareNeighborhoods(args);
729
+ return {
730
+ content: [{ type: "text", text: addDisclaimer(JSON.stringify(result, null, 2)) }],
731
+ };
732
+ }
733
+ catch (err) {
734
+ return {
735
+ content: [{ type: "text", text: `Error: ${err instanceof Error ? err.message : String(err)}` }],
736
+ isError: true,
737
+ };
738
+ }
739
+ });
740
+ // ---------------------------------------------------------------------------
642
741
  // Start
643
742
  // ---------------------------------------------------------------------------
644
743
  async function main() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * DVF (Demandes de Valeurs Foncieres) — Real property transaction data from
3
+ * the French government open data API.
4
+ *
5
+ * API: https://api.cquest.org/dvf (no authentication required)
6
+ * Fallback: https://apidf-preprod.cerema.fr/dvf_opendata/geomutations/
7
+ *
8
+ * DVF provides all real estate sales in France since 2014, including:
9
+ * - Sale price (valeur_fonciere)
10
+ * - Property type (type_local)
11
+ * - Surface area (surface_reelle_bati)
12
+ * - Number of rooms (nombre_pieces_principales)
13
+ * - Date of sale (date_mutation)
14
+ * - Location (code_postal, commune, etc.)
15
+ */
16
+ export interface DvfTransaction {
17
+ date_mutation: string;
18
+ valeur_fonciere: number | null;
19
+ adresse_numero?: string;
20
+ adresse_nom_voie?: string;
21
+ code_postal: string;
22
+ nom_commune: string;
23
+ code_commune: string;
24
+ type_local: string;
25
+ surface_reelle_bati: number | null;
26
+ nombre_pieces_principales: number | null;
27
+ surface_terrain: number | null;
28
+ nature_mutation: string;
29
+ }
30
+ export interface SearchTransactionsInput {
31
+ codePostal?: string;
32
+ codeCommune?: string;
33
+ dateMin?: string;
34
+ dateMax?: string;
35
+ typeLocal?: "Maison" | "Appartement" | "Dependance" | "Local industriel. commercial ou assimile";
36
+ limit?: number;
37
+ }
38
+ export interface SearchTransactionsOutput {
39
+ transactions: {
40
+ date: string;
41
+ price: number;
42
+ address: string;
43
+ postalCode: string;
44
+ city: string;
45
+ propertyType: string;
46
+ surface: number | null;
47
+ rooms: number | null;
48
+ landSurface: number | null;
49
+ pricePerSqm: number | null;
50
+ mutationType: string;
51
+ }[];
52
+ totalResults: number;
53
+ query: {
54
+ codePostal?: string;
55
+ codeCommune?: string;
56
+ dateMin?: string;
57
+ dateMax?: string;
58
+ typeLocal?: string;
59
+ };
60
+ source: string;
61
+ }
62
+ export interface PricePerSqmInput {
63
+ codePostal?: string;
64
+ codeCommune?: string;
65
+ typeLocal?: "Maison" | "Appartement";
66
+ dateMin?: string;
67
+ dateMax?: string;
68
+ }
69
+ export interface PricePerSqmOutput {
70
+ averagePricePerSqm: number;
71
+ medianPricePerSqm: number;
72
+ minPricePerSqm: number;
73
+ maxPricePerSqm: number;
74
+ transactionCount: number;
75
+ location: string;
76
+ propertyType: string;
77
+ period: string;
78
+ breakdown: {
79
+ range: string;
80
+ count: number;
81
+ avgPrice: number;
82
+ }[];
83
+ source: string;
84
+ }
85
+ export interface CompareNeighborhoodsInput {
86
+ postalCodes: string[];
87
+ typeLocal?: "Maison" | "Appartement";
88
+ dateMin?: string;
89
+ dateMax?: string;
90
+ }
91
+ export interface CompareNeighborhoodsOutput {
92
+ comparison: {
93
+ postalCode: string;
94
+ city: string;
95
+ avgPricePerSqm: number;
96
+ medianPricePerSqm: number;
97
+ avgPrice: number;
98
+ transactionCount: number;
99
+ avgSurface: number;
100
+ }[];
101
+ cheapest: string;
102
+ mostExpensive: string;
103
+ propertyType: string;
104
+ period: string;
105
+ source: string;
106
+ }
107
+ export declare function searchPropertyTransactions(input: SearchTransactionsInput): Promise<SearchTransactionsOutput>;
108
+ export declare function getPricePerSqm(input: PricePerSqmInput): Promise<PricePerSqmOutput>;
109
+ export declare function compareNeighborhoods(input: CompareNeighborhoodsInput): Promise<CompareNeighborhoodsOutput>;
110
+ //# sourceMappingURL=dvf-transactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dvf-transactions.d.ts","sourceRoot":"","sources":["../../src/tools/dvf-transactions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,248 @@
1
+ /**
2
+ * DVF (Demandes de Valeurs Foncieres) — Real property transaction data from
3
+ * the French government open data API.
4
+ *
5
+ * API: https://api.cquest.org/dvf (no authentication required)
6
+ * Fallback: https://apidf-preprod.cerema.fr/dvf_opendata/geomutations/
7
+ *
8
+ * DVF provides all real estate sales in France since 2014, including:
9
+ * - Sale price (valeur_fonciere)
10
+ * - Property type (type_local)
11
+ * - Surface area (surface_reelle_bati)
12
+ * - Number of rooms (nombre_pieces_principales)
13
+ * - Date of sale (date_mutation)
14
+ * - Location (code_postal, commune, etc.)
15
+ */
16
+ // ---------------------------------------------------------------------------
17
+ // API fetching
18
+ // ---------------------------------------------------------------------------
19
+ const DVF_API_PRIMARY = "https://api.cquest.org/dvf";
20
+ const DVF_API_FALLBACK = "https://apidf-preprod.cerema.fr/dvf_opendata/geomutations/";
21
+ async function fetchDvf(params) {
22
+ const url = new URL(DVF_API_PRIMARY);
23
+ for (const [key, value] of Object.entries(params)) {
24
+ if (value)
25
+ url.searchParams.set(key, value);
26
+ }
27
+ try {
28
+ const response = await fetch(url.toString(), {
29
+ headers: { "User-Agent": "realestate-mcp/2.2.0" },
30
+ signal: AbortSignal.timeout(15000),
31
+ });
32
+ if (!response.ok) {
33
+ throw new Error(`DVF API returned ${response.status}`);
34
+ }
35
+ const data = (await response.json());
36
+ const transactions = data.resultats || data.results || [];
37
+ const total = data.nb_resultats || data.count || transactions.length;
38
+ return { transactions, total };
39
+ }
40
+ catch (primaryError) {
41
+ // Try fallback API
42
+ try {
43
+ const fallbackUrl = new URL(DVF_API_FALLBACK);
44
+ // Map params to fallback format
45
+ if (params.code_postal)
46
+ fallbackUrl.searchParams.set("code_postal", params.code_postal);
47
+ if (params.code_commune)
48
+ fallbackUrl.searchParams.set("code_commune", params.code_commune);
49
+ const response = await fetch(fallbackUrl.toString(), {
50
+ headers: { "User-Agent": "realestate-mcp/2.2.0" },
51
+ signal: AbortSignal.timeout(15000),
52
+ });
53
+ if (!response.ok) {
54
+ throw new Error(`Fallback DVF API returned ${response.status}`);
55
+ }
56
+ const data = (await response.json());
57
+ const transactions = data.resultats || data.results || [];
58
+ const total = data.nb_resultats || data.count || transactions.length;
59
+ return { transactions, total };
60
+ }
61
+ catch {
62
+ throw new Error(`DVF API unavailable. Primary error: ${primaryError instanceof Error ? primaryError.message : String(primaryError)}`);
63
+ }
64
+ }
65
+ }
66
+ // ---------------------------------------------------------------------------
67
+ // Tool implementations
68
+ // ---------------------------------------------------------------------------
69
+ export async function searchPropertyTransactions(input) {
70
+ const params = {};
71
+ if (input.codePostal)
72
+ params.code_postal = input.codePostal;
73
+ if (input.codeCommune)
74
+ params.code_commune = input.codeCommune;
75
+ if (!params.code_postal && !params.code_commune) {
76
+ throw new Error("Either codePostal or codeCommune is required");
77
+ }
78
+ const { transactions, total } = await fetchDvf(params);
79
+ // Filter by date range
80
+ let filtered = transactions.filter((t) => t.valeur_fonciere && t.valeur_fonciere > 0);
81
+ if (input.dateMin) {
82
+ filtered = filtered.filter((t) => t.date_mutation >= input.dateMin);
83
+ }
84
+ if (input.dateMax) {
85
+ filtered = filtered.filter((t) => t.date_mutation <= input.dateMax);
86
+ }
87
+ if (input.typeLocal) {
88
+ filtered = filtered.filter((t) => t.type_local === input.typeLocal);
89
+ }
90
+ // Sort by date descending
91
+ filtered.sort((a, b) => b.date_mutation.localeCompare(a.date_mutation));
92
+ // Apply limit
93
+ const limit = input.limit || 50;
94
+ const limited = filtered.slice(0, limit);
95
+ return {
96
+ transactions: limited.map((t) => ({
97
+ date: t.date_mutation,
98
+ price: t.valeur_fonciere,
99
+ address: [t.adresse_numero, t.adresse_nom_voie].filter(Boolean).join(" ") || "N/A",
100
+ postalCode: t.code_postal,
101
+ city: t.nom_commune,
102
+ propertyType: t.type_local || "Unknown",
103
+ surface: t.surface_reelle_bati,
104
+ rooms: t.nombre_pieces_principales,
105
+ landSurface: t.surface_terrain,
106
+ pricePerSqm: t.surface_reelle_bati && t.surface_reelle_bati > 0
107
+ ? Math.round(t.valeur_fonciere / t.surface_reelle_bati)
108
+ : null,
109
+ mutationType: t.nature_mutation,
110
+ })),
111
+ totalResults: total,
112
+ query: {
113
+ codePostal: input.codePostal,
114
+ codeCommune: input.codeCommune,
115
+ dateMin: input.dateMin,
116
+ dateMax: input.dateMax,
117
+ typeLocal: input.typeLocal,
118
+ },
119
+ source: "DVF (Demandes de Valeurs Foncieres) — data.gouv.fr open data",
120
+ };
121
+ }
122
+ export async function getPricePerSqm(input) {
123
+ const params = {};
124
+ if (input.codePostal)
125
+ params.code_postal = input.codePostal;
126
+ if (input.codeCommune)
127
+ params.code_commune = input.codeCommune;
128
+ if (!params.code_postal && !params.code_commune) {
129
+ throw new Error("Either codePostal or codeCommune is required");
130
+ }
131
+ const { transactions } = await fetchDvf(params);
132
+ // Filter valid transactions with surface data
133
+ let filtered = transactions.filter((t) => t.valeur_fonciere && t.valeur_fonciere > 0 && t.surface_reelle_bati && t.surface_reelle_bati > 0);
134
+ if (input.typeLocal) {
135
+ filtered = filtered.filter((t) => t.type_local === input.typeLocal);
136
+ }
137
+ if (input.dateMin) {
138
+ filtered = filtered.filter((t) => t.date_mutation >= input.dateMin);
139
+ }
140
+ if (input.dateMax) {
141
+ filtered = filtered.filter((t) => t.date_mutation <= input.dateMax);
142
+ }
143
+ if (filtered.length === 0) {
144
+ throw new Error("No transactions found matching criteria. Try broadening date range or location.");
145
+ }
146
+ // Calculate price per sqm for each transaction
147
+ const pricesPerSqm = filtered.map((t) => t.valeur_fonciere / t.surface_reelle_bati);
148
+ pricesPerSqm.sort((a, b) => a - b);
149
+ const avg = Math.round(pricesPerSqm.reduce((sum, p) => sum + p, 0) / pricesPerSqm.length);
150
+ const median = Math.round(pricesPerSqm[Math.floor(pricesPerSqm.length / 2)]);
151
+ const min = Math.round(pricesPerSqm[0]);
152
+ const max = Math.round(pricesPerSqm[pricesPerSqm.length - 1]);
153
+ // Create price breakdown ranges
154
+ const rangeSize = (max - min) / 4;
155
+ const breakdown = [];
156
+ for (let i = 0; i < 4; i++) {
157
+ const rangeLow = Math.round(min + rangeSize * i);
158
+ const rangeHigh = Math.round(min + rangeSize * (i + 1));
159
+ const inRange = pricesPerSqm.filter((p) => p >= rangeLow && (i === 3 ? p <= rangeHigh : p < rangeHigh));
160
+ if (inRange.length > 0) {
161
+ breakdown.push({
162
+ range: `${rangeLow} - ${rangeHigh} EUR/m2`,
163
+ count: inRange.length,
164
+ avgPrice: Math.round(inRange.reduce((s, p) => s + p, 0) / inRange.length),
165
+ });
166
+ }
167
+ }
168
+ const location = filtered[0]?.nom_commune || input.codePostal || input.codeCommune || "Unknown";
169
+ const dates = filtered.map((t) => t.date_mutation).sort();
170
+ const period = dates.length > 0 ? `${dates[0]} to ${dates[dates.length - 1]}` : "unknown";
171
+ return {
172
+ averagePricePerSqm: avg,
173
+ medianPricePerSqm: median,
174
+ minPricePerSqm: min,
175
+ maxPricePerSqm: max,
176
+ transactionCount: filtered.length,
177
+ location,
178
+ propertyType: input.typeLocal || "All types",
179
+ period,
180
+ breakdown,
181
+ source: "DVF (Demandes de Valeurs Foncieres) — data.gouv.fr open data",
182
+ };
183
+ }
184
+ export async function compareNeighborhoods(input) {
185
+ if (input.postalCodes.length < 2 || input.postalCodes.length > 5) {
186
+ throw new Error("Provide 2 to 5 postal codes to compare");
187
+ }
188
+ const results = [];
189
+ for (const postalCode of input.postalCodes) {
190
+ const { transactions } = await fetchDvf({ code_postal: postalCode });
191
+ let filtered = transactions.filter((t) => t.valeur_fonciere && t.valeur_fonciere > 0 && t.surface_reelle_bati && t.surface_reelle_bati > 0);
192
+ if (input.typeLocal) {
193
+ filtered = filtered.filter((t) => t.type_local === input.typeLocal);
194
+ }
195
+ if (input.dateMin) {
196
+ filtered = filtered.filter((t) => t.date_mutation >= input.dateMin);
197
+ }
198
+ if (input.dateMax) {
199
+ filtered = filtered.filter((t) => t.date_mutation <= input.dateMax);
200
+ }
201
+ if (filtered.length === 0) {
202
+ results.push({
203
+ postalCode,
204
+ city: "No data",
205
+ avgPricePerSqm: 0,
206
+ medianPricePerSqm: 0,
207
+ avgPrice: 0,
208
+ transactionCount: 0,
209
+ avgSurface: 0,
210
+ });
211
+ continue;
212
+ }
213
+ const pricesPerSqm = filtered.map((t) => t.valeur_fonciere / t.surface_reelle_bati);
214
+ pricesPerSqm.sort((a, b) => a - b);
215
+ const avgPricePerSqm = Math.round(pricesPerSqm.reduce((s, p) => s + p, 0) / pricesPerSqm.length);
216
+ const medianPricePerSqm = Math.round(pricesPerSqm[Math.floor(pricesPerSqm.length / 2)]);
217
+ const avgPrice = Math.round(filtered.reduce((s, t) => s + t.valeur_fonciere, 0) / filtered.length);
218
+ const avgSurface = Math.round(filtered.reduce((s, t) => s + t.surface_reelle_bati, 0) / filtered.length);
219
+ const city = filtered[0]?.nom_commune || postalCode;
220
+ results.push({
221
+ postalCode,
222
+ city,
223
+ avgPricePerSqm,
224
+ medianPricePerSqm,
225
+ avgPrice,
226
+ transactionCount: filtered.length,
227
+ avgSurface,
228
+ });
229
+ }
230
+ const withData = results.filter((r) => r.transactionCount > 0);
231
+ const cheapest = withData.length > 0
232
+ ? withData.reduce((a, b) => (a.avgPricePerSqm < b.avgPricePerSqm ? a : b)).postalCode
233
+ : "N/A";
234
+ const mostExpensive = withData.length > 0
235
+ ? withData.reduce((a, b) => (a.avgPricePerSqm > b.avgPricePerSqm ? a : b)).postalCode
236
+ : "N/A";
237
+ const dates = [input.dateMin, input.dateMax].filter(Boolean);
238
+ const period = dates.length === 2 ? `${dates[0]} to ${dates[1]}` : dates.length === 1 ? `from ${dates[0]}` : "all available data";
239
+ return {
240
+ comparison: results,
241
+ cheapest,
242
+ mostExpensive,
243
+ propertyType: input.typeLocal || "All types",
244
+ period,
245
+ source: "DVF (Demandes de Valeurs Foncieres) — data.gouv.fr open data",
246
+ };
247
+ }
248
+ //# sourceMappingURL=dvf-transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dvf-transactions.js","sourceRoot":"","sources":["../../src/tools/dvf-transactions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "realestate-mcp",
3
- "version": "2.1.4",
4
- "description": "MCP server for real estate agents floor plans, virtual tours, property descriptions (EN/FR), price estimation, property comparison, staging suggestions, neighborhood analysis, and 3D previews",
3
+ "version": "2.2.0",
4
+ "description": "MCP server for real estate agents \u2014 floor plans, virtual tours, property descriptions (EN/FR), price estimation, property comparison, staging suggestions, neighborhood analysis, and 3D previews",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -58,7 +58,7 @@
58
58
  "type": "git",
59
59
  "url": "https://github.com/sceneview-tools/realestate-mcp.git"
60
60
  },
61
- "mcpName": "io.github.sceneview/realestate-mcp",
61
+ "mcpName": "io.github.sceneview-tools/realestate-mcp",
62
62
  "funding": [
63
63
  {
64
64
  "type": "github",
package/server.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
- "name": "io.github.ThomasGorisse/realestate-mcp",
4
- "description": "Real estate MCP floor plans, virtual tours, property descriptions (EN/FR), price estimation, property comparison, staging, neighborhood analysis, 3D previews. 8 tools for real estate agents.",
3
+ "name": "io.github.sceneview-tools/realestate-mcp",
4
+ "description": "Real estate MCP \u2014 floor plans, virtual tours, property descriptions (EN/FR), price estimation, property comparison, staging, neighborhood analysis, 3D previews. 8 tools for real estate agents.",
5
5
  "repository": {
6
- "url": "https://github.com/ThomasGorisse/realestate-mcp",
6
+ "url": "https://github.com/sceneview-tools/realestate-mcp",
7
7
  "source": "github"
8
8
  },
9
9
  "version": "2.0.0",