Skip to main content
Glama
AkekaratP

Flight + Stay Search MCP

by AkekaratP

get_offer_details

Retrieve comprehensive flight offer details using a unique identifier to access pricing, itinerary, and booking information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
offerIdYesUnique identifier for the flight offer

Implementation Reference

  • The handler function that executes the tool logic: fetches the flight offer details via flightClient.getOffer(params.offerId) and returns a MCP-formatted text content block with the JSON response.
    async (params: OfferDetails) => {
      try {
        const response = await flightClient.getOffer(params.offerId);
        
        return {
          content: [
            {
              type: 'text',
              text: JSON.stringify(response, null, 2)
            }
          ]
        };
        
      } catch (error) {
        console.error(`Error getting offer details: ${error}`);
        throw error;
      }
    }
  • src/server.ts:116-137 (registration)
    Registration of the 'get_offer_details' tool using server.tool with schema and inline handler function.
    server.tool(
      'get_offer_details',
      offerDetailsSchema.shape,
      async (params: OfferDetails) => {
        try {
          const response = await flightClient.getOffer(params.offerId);
          
          return {
            content: [
              {
                type: 'text',
                text: JSON.stringify(response, null, 2)
              }
            ]
          };
          
        } catch (error) {
          console.error(`Error getting offer details: ${error}`);
          throw error;
        }
      }
    );
  • Zod schema defining the input parameters for the tool: offerId as a string.
    export const offerDetailsSchema = z.object({
      offerId: z.string().describe('Unique identifier for the flight offer')
    });
    
    export type OfferDetails = z.infer<typeof offerDetailsSchema>;
  • Supporting utility method in DuffelClient that performs the actual API call to retrieve offer details from Duffel API.
    async getOffer(offerId: string): Promise<any> {
      try {
        if (!offerId.startsWith('off_')) {
          throw new Error('Invalid offer ID format - must start with "off_"');
        }
        
        const response = await this.client.get(`/offers/${offerId}`);
        return response.data;
        
      } catch (error) {
        console.error(`Error getting offer ${offerId}: ${error}`);
        throw error;
      }
    }

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/AkekaratP/flights-mcp-ts'

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