jinko-mcp-dev
Version:
MCP server for Jinko Travel BFF
46 lines (45 loc) • 1.86 kB
JavaScript
/**
* Place-related tools for the hotel MCP server
*/
import { makeApiRequest, createYamlResponse } from "../../utils.js";
/**
* Get place suggestions based on user input
*/
export async function autocompletePlaces(params) {
// Make API request to get place suggestions
const request = {
"input": params.query,
"language": "en",
};
if (params.language) {
request.language = params.language;
}
const autocompleteResult = await makeApiRequest("/api/v1/hotels/places/autocomplete", "POST", request);
if (!autocompleteResult) {
return createYamlResponse({
status: "error",
message: "Failed to retrieve place suggestions. Please try again with a different query."
});
}
if (!autocompleteResult.predictions || autocompleteResult.predictions.length === 0) {
return createYamlResponse({
status: "empty",
message: "No places found matching your query. Please try a different search term."
});
}
// Format results for YAML response
const placeSummaries = autocompleteResult.predictions.map((place, index) => ({
id: place.place_id,
name: place.structured_formatting?.main_text || place.description,
type: place.types || "Unknown",
location: place.description || "",
latitude: place.latitude,
longitude: place.longitude,
}));
const response = {
places: placeSummaries,
count: autocompleteResult.predictions.length,
message: "Found matching locations based on your search. Each result includes location coordinates that can be used with the search-hotels tool. If multiple locations match your query, please help the user select the most appropriate one based on their travel plans."
};
return createYamlResponse(response);
}