feat(mcp): add industrial parks and reports MCP tool servers

Add IndustrialParkServer for KCN/KCX search and analytics, and
ReportsServer for market report generation. Include unit tests
for industrial parks server.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-16 05:16:11 +07:00
parent 2a69736728
commit 53c33a1c50
7 changed files with 1112 additions and 0 deletions

View File

@@ -18,6 +18,8 @@ export class McpRegistryService implements OnModuleInit {
const { createPropertySearchServer } = await import('../property-search/property-search.server');
const { createMarketAnalyticsServer } = await import('../market-analytics/market-analytics.server');
const { createValuationServer } = await import('../valuation/valuation.server');
const { createIndustrialParksServer } = await import('../industrial-parks/industrial-parks.server');
const { createReportsServer } = await import('../reports/reports.server');
// Typesense client is injected from the host app via setTypesenseClient
// If not set by the time servers are needed, tools that require it will fail gracefully
@@ -45,6 +47,23 @@ export class McpRegistryService implements OnModuleInit {
aiServiceBaseUrl: this.options.aiServiceBaseUrl,
}),
);
if (this.typesenseClient) {
this.servers.set(
'industrial-parks',
createIndustrialParksServer({
typesenseClient: this.typesenseClient,
aiServiceBaseUrl: this.options.aiServiceBaseUrl,
}),
);
}
this.servers.set(
'reports',
createReportsServer({
aiServiceBaseUrl: this.options.aiServiceBaseUrl,
}),
);
}
setTypesenseClient(client: TypesenseClient): void {