Skip to main content
Glama

find_nearby_experiences

Discover shows, events, and experiences near your location on tickadoo. Use this tool when sharing your location or seeking nearby activities.

Instructions

Find shows, events and experiences near a geographic location on tickadoo®. Use when a user shares their location or asks for things to do near them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude
longitudeYesLongitude
radius_kmNoSearch radius in km (default 25)
languageNoLanguage codeen

Implementation Reference

  • Registration and implementation handler for the 'find_nearby_experiences' MCP tool. It uses `getProductsByLocation` to retrieve experiences and formats the output for the user.
    server.tool(
      "find_nearby_experiences",
      "Find shows, events and experiences near a geographic location on tickadoo®. Use when a user shares their location or asks for things to do near them.",
      {
        latitude: z.number().describe("Latitude"),
        longitude: z.number().describe("Longitude"),
        radius_km: z.number().optional().default(25).describe("Search radius in km (default 25)"),
        language: z.string().optional().default("en").describe("Language code"),
      },
      READ_ONLY_TOOL_ANNOTATIONS,
      async ({ latitude, longitude, radius_km, language }) => {
        try {
          const products = await getProductsByLocation(latitude, longitude, radius_km, language);
          if (!products.length) {
            return createTextResponse(`No experiences within ${radius_km}km. Try increasing the radius or searching a specific city.`);
          }
    
          const rankedProducts = sortProductsForDisplay(products);
          const topProducts = rankedProducts.slice(0, 12);
          return createTextResponse(
            `${buildShownResultsLabel(topProducts.length, products.length, "nearby")}\n\n${topProducts.map(product => formatProduct(product)).join("\n\n")}`,
            {
              structuredContent: {
                latitude,
                longitude,
                radiusKm: radius_km,
                totalExperiences: products.length,
                experiences: topProducts.map(product => productStructuredData(product)),
              },
            },
          );
        } catch (error) {
          return createTextResponse(`Error: ${getErrorMessage(error)}`, { isError: true });
        }
      },

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/tickadoo/tickadoo-mcp'

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