Skip to main content
Glama

get_reservation_brief

Retrieve essential reservation details for agents or operators to quickly understand guest context and manage hospitality workflows.

Instructions

Return the minimum useful reservation context for an agent or operator.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reservationIdYes
detailLevelNo

Implementation Reference

  • The handler function that retrieves reservation and listing data from the client, then processes it using buildReservationBrief to produce the tool result.
    async ({ reservationId, detailLevel }) => {
      const reservation = await client.getReservation(reservationId);
      const listingId = reservation.listingMapId ?? reservation.listingId ?? null;
      const listing = listingId != null ? await client.getListing(listingId).catch(() => null) : null;
    
      return toolResult(
        buildReservationBrief({
          reservation,
          listing,
          detailLevel: detailLevel ?? "compact"
        })
      );
    }
  • Schema definition for the input and output of the get_reservation_brief tool.
    inputSchema: {
      reservationId: z.union([z.string(), z.number()]),
      detailLevel: z.enum(["compact", "full"]).optional()
    },
    outputSchema: {
      reservationId: z.string().nullable(),
      listingId: z.string().nullable(),
      listingName: z.string().nullable(),
      guestName: z.string(),
      guestEmail: z.string().nullable(),
      channel: z.enum(["Airbnb", "Booking.com", "VRBO", "Direct"]),
      status: z.string().nullable(),
      arrivalDate: z.string().nullable(),
      departureDate: z.string().nullable(),
      occupancy: z
        .object({
          totalGuests: z.number().nullable(),
          adults: z.number().nullable(),
          children: z.number().nullable(),
          infants: z.number().nullable(),
          pets: z.number().nullable()
        })
        .nullable(),
      missing: z.array(z.string()),
      notes: z.array(z.string()),
      raw: z
        .object({
          reservation: z.record(z.string(), z.unknown()),
          listing: z.record(z.string(), z.unknown()).nullable()
        })
        .optional()
    }
  • Function responsible for registering the get_reservation_brief tool with the McpServer.
    export function registerGetReservationBriefTool(server: McpServer, client: HostawayDataClient) {
      server.registerTool(
        "get_reservation_brief",
        {
          description: "Return the minimum useful reservation context for an agent or operator.",
          inputSchema: {
            reservationId: z.union([z.string(), z.number()]),
            detailLevel: z.enum(["compact", "full"]).optional()
          },
          outputSchema: {
            reservationId: z.string().nullable(),
            listingId: z.string().nullable(),
            listingName: z.string().nullable(),
            guestName: z.string(),
            guestEmail: z.string().nullable(),
            channel: z.enum(["Airbnb", "Booking.com", "VRBO", "Direct"]),
            status: z.string().nullable(),
            arrivalDate: z.string().nullable(),
            departureDate: z.string().nullable(),
            occupancy: z
              .object({
                totalGuests: z.number().nullable(),
                adults: z.number().nullable(),
                children: z.number().nullable(),
                infants: z.number().nullable(),
                pets: z.number().nullable()
              })
              .nullable(),
            missing: z.array(z.string()),
            notes: z.array(z.string()),
            raw: z
              .object({
                reservation: z.record(z.string(), z.unknown()),
                listing: z.record(z.string(), z.unknown()).nullable()
              })
              .optional()
          }
        },
        async ({ reservationId, detailLevel }) => {
          const reservation = await client.getReservation(reservationId);
          const listingId = reservation.listingMapId ?? reservation.listingId ?? null;
          const listing = listingId != null ? await client.getListing(listingId).catch(() => null) : null;
    
          return toolResult(
            buildReservationBrief({
              reservation,
              listing,
              detailLevel: detailLevel ?? "compact"
            })
          );
        }
      );
    }

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/uncfreak1255-code/hostaway-mcp'

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