Skip to main content
Glama

Travel Agent MCP Server

by nxGnosis
getimmigrationByCountry.ts•3.13 kB
import dedent from "dedent"; import { z } from "zod"; import { immigrationService } from "../../services/immigrationService.js"; const getImmigrationCountryParam = z.object({ countryCode: z .string() .describe("The ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB')."), }); type getImmigrationCountryParam = z.infer<typeof getImmigrationCountryParam>; export const getImmigrationInfoByCountry = { name: "GET_IMMIGRATION_INFO_BY_COUNTRY", description: "Get immigration information for a specific country.", parameters: getImmigrationCountryParam, execute: async (params: getImmigrationCountryParam) => { try { const immigrationInfo = await immigrationService.getImmigrationInfoByCountry( params.countryCode, ); let formattedImmigrationInfo = `šŸ’¼ Immigration information for ${params.countryCode}:\n`; if ( immigrationInfo && immigrationInfo.data && Array.isArray(immigrationInfo.data.data) ) { if (immigrationInfo.data.data.length > 0) { immigrationInfo.data.data.forEach((service:any) => { formattedImmigrationInfo += `\nšŸ›ļø Service: ${service.name || "N/A"}`; formattedImmigrationInfo += `\nšŸ“„ Description: ${service.description || "N/A"}`; formattedImmigrationInfo += `\nšŸ’¬ Consultation Note: ${service.consultation_note || "N/A"}`; if (Array.isArray(service.countries) && service.countries.length > 0) { // Iterate through each country for this service service.countries.forEach((country:any) => { formattedImmigrationInfo += `\nšŸŒ Country: ${country.country_code || "N/A"}`; formattedImmigrationInfo += `\nšŸ’° Consultation Fee: $${country.consultation_fee || "N/A"}`; formattedImmigrationInfo += `\nšŸ’° Service Fee: $${country.service_fee || "N/A"}`; if (Array.isArray(country.requirements) && country.requirements.length > 0) { formattedImmigrationInfo += "\nāœ… Requirements:"; country.requirements.forEach((req:any) => { formattedImmigrationInfo += `\n - ${req.requirement || "N/A"} (${req.response_type || "N/A"})`; }); } else { formattedImmigrationInfo += "\nNo specific requirements listed for this country."; } formattedImmigrationInfo += "\n"; // Add spacing between countries }); } else { formattedImmigrationInfo += "\nNo country-specific information available."; } formattedImmigrationInfo += "\n---\n"; // Add separator between services }); } else { formattedImmigrationInfo += "No specific immigration information found for this country."; } } else { formattedImmigrationInfo += "Could not retrieve detailed immigration information."; } return dedent`${formattedImmigrationInfo}`; } catch (error) { // Rewriting error messages to be relevant to immigration information if (error instanceof Error) { return `Error fetching immigration information for ${params.countryCode}: ${error.message}`; } return `An unknown error occurred while fetching immigration information for ${params.countryCode}`; } }, };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nxGnosis/TravelAgentMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server