Skip to main content
Glama
campertunity

Campertunity MCP Server

Official
by campertunity

place-book

Book camping spots by specifying place ID, dates, and group size (adults & children). Submit details to secure reservations conveniently.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
adultsNoNumber of adults. Default is 1.
childrenNoNumber of children. Default is 0.
endDateNoThe end date of the booking. Format: YYYY-MM-DD
placeIdYesThe id of the place to book.
startDateNoThe start date of the booking. Format: YYYY-MM-DD

Implementation Reference

  • The asynchronous handler function that implements the core logic of the 'place-book' tool. It sends a POST request to the `/place/book` endpoint using the CampertunityClient with the provided parameters and returns the response as JSON or an error message.
    async ({ placeId, startDate, endDate, adults, children }) => { try { const availability = await campertunityClient.post(`/place/book`, { placeId, startDate, endDate, adults, children, }); return { content: [{ type: 'text', text: JSON.stringify(availability), mimeType: 'application/json' }], }; } catch (error) { return { content: [{ type: 'text', text: 'Error: ' + (error as Error).message }], isError: true, }; } }
  • Zod schema defining the input parameters for the 'place-book' tool, including placeId (required), optional dates, and defaulted adult/children counts.
    { placeId: z.string().describe('The id of the place to book.'), startDate: z.string().optional().describe('The start date of the booking. Format: YYYY-MM-DD'), endDate: z.string().optional().describe('The end date of the booking. Format: YYYY-MM-DD'), adults: z.number().default(1).describe('Number of adults. Default is 1.'), children: z.number().default(0).describe('Number of children. Default is 0.'), },
  • The server.tool() call within the placeBookTool function that registers the 'place-book' tool, specifying its name, input schema, and handler.
    server.tool( 'place-book', { placeId: z.string().describe('The id of the place to book.'), startDate: z.string().optional().describe('The start date of the booking. Format: YYYY-MM-DD'), endDate: z.string().optional().describe('The end date of the booking. Format: YYYY-MM-DD'), adults: z.number().default(1).describe('Number of adults. Default is 1.'), children: z.number().default(0).describe('Number of children. Default is 0.'), }, async ({ placeId, startDate, endDate, adults, children }) => { try { const availability = await campertunityClient.post(`/place/book`, { placeId, startDate, endDate, adults, children, }); return { content: [{ type: 'text', text: JSON.stringify(availability), mimeType: 'application/json' }], }; } catch (error) { return { content: [{ type: 'text', text: 'Error: ' + (error as Error).message }], isError: true, }; } } );
  • src/index.ts:24-24 (registration)
    Invocation of the placeBookTool function in the main server setup, which triggers the registration of the 'place-book' tool on the MCP server instance.
    placeBookTool(server, campertunityClient);

Other Tools

Related Tools

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/campertunity/mcp-server'

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